コード例 #1
0
        /// <summary>
        /// 产生数据
        /// </summary>
        /// <param name="dataSet">数据集</param>
        /// <param name="serialXmlObject">xml序列化对象</param>
        /// <returns></returns>
        private _Data GenerateXmlData(DataSet dataSet, MessageSerialXml serialXmlObject)
        {
            _Data xmlData = new _Data();

            _Table[] xmlTableStructSet = serialXmlObject.Head.DataDefine.TableSet;
            xmlData.DataTableSet = new _DataTable[serialXmlObject.Head.DataDefine.TableSet.Length];
            for (int i = 0; i < xmlTableStructSet.Length; i++)
            {
                _Table     xmlTableStruct = xmlTableStructSet[i];
                _DataTable xmlDataTable   = new _DataTable();
                DataTable  dt             = null;
                if (xmlTableStructSet.Length <= 1)
                {
                    dt           = dataSet.Tables[0];
                    dt.TableName = xmlTableStruct.TableName;
                }
                else
                {
                    dt = dataSet.Tables[xmlTableStruct.TableName];
                }

                if (dt.Rows.Count <= 0)
                {
                    continue;
                }

                xmlData.DataTableSet[i] = GenerateXmlDataTable(dt, xmlTableStruct, xmlDataTable);
            }

            return(xmlData);
        }
コード例 #2
0
        /// <summary>
        /// 创建消息表结构
        /// </summary>
        /// <param name="dt">数据表</param>
        /// <param name="xmlTableStruct">表结构</param>
        /// <param name="xmlDataTable">xml数据表</param>
        /// <returns></returns>
        private _DataTable GenerateXmlDataTable(DataTable dt, _Table xmlTableStruct, _DataTable xmlDataTable)
        {
            xmlDataTable.TableName = xmlTableStruct.TableName;

            xmlDataTable.RowSet = new _Row[dt.Rows.Count];
            for (int index = 0; index < dt.Rows.Count; index++)
            {
                DataRow dr     = dt.Rows[index];
                _Row    xmlRow = new _Row();
                xmlRow.Index              = index.ToString();        // 设置行顺序
                xmlRow.Header             = new _Header();
                xmlRow.Header.Action      = dr["Action"].ToString(); // 设置记录状态
                xmlRow.Header.DataItemSet = new _DataItem[xmlTableStruct.FieldItemSet.Length];
                for (int fieldIndex = 0; fieldIndex < xmlTableStruct.FieldItemSet.Length; fieldIndex++)
                {
                    _DataItem xmlDataItem = new _DataItem();
                    string    fieldName   = xmlTableStruct.FieldItemSet[fieldIndex].FieldName;
                    xmlDataItem.FieldName  = fieldName;
                    xmlDataItem.FieldValue = GetXmlFieldValue(dr[fieldName], dt.Columns[fieldName].DataType);
                    xmlRow.Header.DataItemSet[fieldIndex] = xmlDataItem;
                }

                xmlDataTable.RowSet[index] = xmlRow;
            }

            return(xmlDataTable);
        }
コード例 #3
0
        /// <summary>
        /// 创建数据表结构
        /// </summary>
        /// <param name="table"></param>
        /// <returns></returns>
        private DataTable CreateDataTableStruct(_Table table)
        {
            DataTable dt = new DataTable(table.TableName);

            System.Collections.Generic.List <DataColumn> primaryKeylist = new List <DataColumn>();
            foreach (_FieldItem fieldItem in table.FieldItemSet)
            {
                DataColumn col = dt.Columns.Add();
                col.ColumnName = fieldItem.FieldName;
                col.Caption    = fieldItem.Caption;
                col.DataType   = GetFieldType(fieldItem.FieldType.Trim(), fieldItem.FieldLength);

                // 记录主键
                if (fieldItem.isPrimaryKey.ToUpper() == "TRUE")
                {
                    primaryKeylist.Add(col);
                }
            }
            dt.PrimaryKey = primaryKeylist.ToArray();
            dt.Columns.Add("Action", typeof(string));

            return(dt);
        }