Beispiel #1
0
        public DbCommonBulkCopy(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);
                }
            }
            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);
            }
        }
Beispiel #2
0
        public DbCommonBulkCopy(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);
            }
            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);
            }
        }