/// <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); } }
/// <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); }