Ejemplo n.º 1
0
        /// <summary>
        /// 取得作用資料列。
        /// </summary>
        /// <param name="dataSet">資料集。</param>
        /// <param name="tableName">資料表。</param>
        /// <param name="fieldName">欄位名稱,若不存在指定欄位,會回傳 null。</param>
        /// <param name="rowIndex">資料列索引。</param>
        private DataRow GetDataRow(DataSet dataSet, string tableName, string fieldName, int rowIndex)
        {
            DataTable oTable;

            // 資料集為空,則回傳 null
            if (BaseFunc.IsEmpty(dataSet))
            {
                return(null);
            }
            // 資料表不存在,則回傳 null
            if (!dataSet.Tables.Contains(tableName))
            {
                return(null);
            }
            // 欄位不存在,則回傳 null
            oTable = dataSet.Tables[tableName];
            if (!DataFunc.HasField(oTable, fieldName))
            {
                return(null);
            }
            // 主檔的資料列索引一徫為 0
            if (StrFunc.SameText(dataSet.DataSetName, tableName))
            {
                rowIndex = 0;
            }
            // 回傳作用資料列
            if (0 <= rowIndex && rowIndex <= oTable.Rows.Count - 1)
            {
                return(oTable.Rows[rowIndex]);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 產生SqlBulkCopy
        /// </summary>
        /// <param name="databaseID">資料庫編號</param>
        /// <param name="tableDefine">資料表定義</param>
        /// <param name="table">資料表</param>
        /// <returns></returns>
        private SqlBulkCopy CreateSqlBulkCopy(string databaseID, GTableDefine tableDefine, DataTable table)
        {
            var sqlBulkCopy = new SqlBulkCopy(this.SqlConnection(databaseID))
            {
                DestinationTableName = tableDefine.DbTableName
            };

            foreach (var fieldDefine in tableDefine.Fields.Where(x => DataFunc.HasField(table, x.FieldName)))
            {
                sqlBulkCopy.ColumnMappings.Add(fieldDefine.FieldName, fieldDefine.DbFieldName);
            }
            return(sqlBulkCopy);
        }