public DbBulkCopy(ProviderType providerType, string connectionString, int bulkcopyTimeout = 1800, int batchSize = 102400, BulkCopyOptions dbBulkCopyOption = BulkCopyOptions.KeepIdentity) : this(providerType, connectionString) { this.BatchSize = batchSize; this.BulkCopyTimeout = bulkcopyTimeout; this.DbBulkCopyOption = dbBulkCopyOption; if (ProviderName == ProviderType.SqlServer) { if (sqlBulkCopy == null || this.ConnectionString != ConnectionString) { sqlBulkCopy = new SqlBulk(ConnectionString, BulkCopyTimeout, DbBulkCopyOption); } } else if (ProviderName == ProviderType.DB2) { if (db2BulkCopy == null || this.ConnectionString != ConnectionString) { //db2BulkCopy = new Db2Bulk(ConnectionString, BulkCopyTimeout, DbBulkCopyOption); throw new Exception("暂时不支持DB2数据库"); } } else if (ProviderName == ProviderType.Oracle) { if (oracleBulkCopy == null || this.ConnectionString != ConnectionString) { oracleBulkCopy = new OracleBulk(ConnectionString, BulkCopyTimeout, DbBulkCopyOption); } } else if (ProviderName == ProviderType.MySql) { mySqlBulkCopy = new MysqlBulk(ConnectionString, BulkCopyTimeout); } }
public DbBulkCopy(ProviderType providerType, string connectionString, IDbConnection dbConnection, int bulkcopyTimeout = 1800, int batchSize = 102400, BulkCopyOptions dbBulkCopyOption = BulkCopyOptions.KeepIdentity, bool isTransaction = true) : this(providerType, connectionString) { this.BatchSize = batchSize; this.BulkCopyTimeout = bulkcopyTimeout; this.DbBulkCopyOption = dbBulkCopyOption; this.IsTransaction = isTransaction; this.dbConn = dbConnection; if (ProviderName == ProviderType.SqlServer) { if (sqlBulkCopy != null || this.ConnectionString != connectionString) { if (sqlBulkCopy != null) { sqlBulkCopy.Dispose(); } } if (dbConn.State != ConnectionState.Open) { dbConn.Open(); } if (IsTransaction) { dbTrans = dbConn.BeginTransaction(); } sqlBulkCopy = new SqlBulk(dbConn, dbTrans, BulkCopyTimeout, DbBulkCopyOption); } else if (ProviderName == ProviderType.DB2) { //if (db2BulkCopy != null || this.ConnectionString != connectionString) //{ // if (db2BulkCopy != null) // db2BulkCopy.Dispose(); //} //if (dbConn.State != ConnectionState.Open) dbConn.Open(); //if (isTransaction) //{ // dbTrans = dbConn.BeginTransaction(); //} //db2BulkCopy = new Db2Bulk(dbConn, BulkCopyTimeout, DbBulkCopyOption); throw new Exception("暂时不支持DB2数据库"); } else if (ProviderName == ProviderType.Oracle) { if (oracleBulkCopy != null || this.ConnectionString != connectionString) { if (oracleBulkCopy != null) { oracleBulkCopy.Dispose(); } } if (dbConn.State != ConnectionState.Open) { dbConn.Open(); } if (isTransaction) { dbTrans = dbConn.BeginTransaction(); } oracleBulkCopy = new OracleBulk(dbConn, BulkCopyTimeout, DbBulkCopyOption); } else if (ProviderName == ProviderType.MySql) { if (mySqlBulkCopy != null || this.ConnectionString != connectionString) { if (mySqlBulkCopy != null) { mySqlBulkCopy.Dispose(); } } mySqlBulkCopy = new MysqlBulk(ConnectionString, BulkCopyTimeout); } }