public override bool Import(DataTable Data, ODAParameter[] Prms) { DataTable ImportData = Data.Copy(); IDbCommand Cmd = OpenCommand(); try { AseBulkCopy sqlbulkcopy = new AseBulkCopy((AseConnection)Cmd.Connection); for (int i = 0; i < Prms.Length; i++) { if (ImportData.Columns.Contains(Prms[i].ParamsName)) { AseBulkCopyColumnMapping colMap = new AseBulkCopyColumnMapping(ImportData.Columns[i].ColumnName, Prms[i].ParamsName); sqlbulkcopy.ColumnMappings.Add(colMap); } } sqlbulkcopy.BulkCopyTimeout = 600000; //需要操作的数据库表名 sqlbulkcopy.DestinationTableName = ImportData.TableName; //将内存表表写入 sqlbulkcopy.WriteToServer(ImportData); sqlbulkcopy.Close(); return(true); } finally { CloseCommand(Cmd); } }
public override bool Import(DataTable Data, ODAParameter[] Prms) { AseBulkCopy sqlbulkcopy = null; IDbConnection conn = null; DataTable ImportData = Data.Copy(); try { if (this.Transaction == null) { conn = this.GetConnection(); sqlbulkcopy = new AseBulkCopy((AseConnection)conn, AseBulkCopyOptions.KeepIdentity | AseBulkCopyOptions.KeepNulls | AseBulkCopyOptions.TableLock | AseBulkCopyOptions.UseInternalTransaction, null); } else { sqlbulkcopy = new AseBulkCopy((AseConnection)this.Transaction.Connection, AseBulkCopyOptions.KeepIdentity | AseBulkCopyOptions.KeepNulls | AseBulkCopyOptions.TableLock, (AseTransaction)this.Transaction); } for (int i = 0; i < Prms.Length; i++) { if (ImportData.Columns.Contains(Prms[i].ColumnName)) { AseBulkCopyColumnMapping colMap = new AseBulkCopyColumnMapping(Prms[i].ColumnName, Prms[i].ParamsName); sqlbulkcopy.ColumnMappings.Add(colMap); } } sqlbulkcopy.BulkCopyTimeout = 600000; //需要操作的数据库表名 sqlbulkcopy.DestinationTableName = ImportData.TableName; //将内存表表写入 sqlbulkcopy.WriteToServer(ImportData); sqlbulkcopy.Close(); return(true); } catch (Exception ex) { throw new ODAException(202, string.Format("Import data into table [{0}] error:{1}", ImportData.TableName, ex.Message)); } finally { if (conn != null) { conn.Close(); conn.Dispose(); } if (sqlbulkcopy != null) { sqlbulkcopy.Close(); sqlbulkcopy = null; } } }