// public readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["ConnOracleWithAddress"] == null ? "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 180.166.173.214)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dswms)));Persist Security Info=True;User ID=c##dswms;Password=c##dswms;" : ConfigurationManager.ConnectionStrings["ConnOracleWithAddress"].ConnectionString;//防止空引用异常 modify by gzw 181227 /// <summary> /// 数据库工厂构造函数 /// </summary> /// <param name="dbtype">数据库枚举</param> public DbFactory(DbFactoryType dbtype) { switch (dbtype) { case DbFactoryType.SQLSERVER: dbF = new SqlServerFactory { ConnStr = ConnectionStringLocalTransaction }; // 数据库连接字符 //SqlConnection connection = (SqlConnection)dbF.CreateConnection(); //SqlBulkCopy //connection.BulkCopy break; case DbFactoryType.ROACLE: dbF = new OracleFactory { ConnStr = ConnectionStringLocalTransaction }; break; case DbFactoryType.MYSQL: dbF = new MySqlFactory { ConnStr = ConnectionStringLocalTransaction }; MySqlConnection connection = (MySqlConnection)dbF.CreateConnection(); break; } }
public void connect(IDBFactory db_factory, string connection_string) { m_dbFactory = db_factory; m_Connection = m_dbFactory.CreateConnection(connection_string); m_Connection.Open(); dbPropertyInfoManager.Instance.setDbFactory(m_dbFactory); }
/// <summary> /// Initializes a new instance of the <see cref="DBConnection"/> class. /// </summary> /// <param name="factory">The factory.</param> /// <param name="connectionString">The connection string.</param> public DBConnection(IDBFactory factory, string connectionString) { if (string.IsNullOrEmpty(connectionString)) { throw new ArgumentException("connectionString is empty", "connectionString"); } Factory = factory; _convertor = factory.CreateConvertor(); _exceptionConverter = factory.CreateExceptionConvertor(); _connection = factory.CreateConnection(); Transaction = new Transaction(_connection); _connection.ConnectionString = connectionString; try { _connection.Open(); } catch (SqlException ex) { Log.Fatal("Error open cobbection to ::" + connectionString, ex); } }
/// <summary> /// 批量保存多表 /// </summary> /// <param name="dt1"></param> /// <param name="TableName"></param> /// <returns></returns> public void SqlBatchCopy(Dictionary <DataTable, string> dt, ref string str) { try { using (IDbConnection conn = dbF.CreateConnection()) { if (conn.State != ConnectionState.Open) { conn.Open(); } IDbTransaction trans = conn.BeginTransaction(); foreach (var item in dt) { using (SqlBulkCopy copy = new SqlBulkCopy((SqlConnection)conn, SqlBulkCopyOptions.Default, (SqlTransaction)trans)) { for (int i = 0; i < item.Key.Columns.Count; i++) { copy.ColumnMappings.Add(item.Key.Columns[i].ColumnName, item.Key.Columns[i].ColumnName); } copy.DestinationTableName = item.Value; copy.WriteToServer(item.Key); } } trans.Commit(); } } catch (Exception ex) { str = "添加失败"; LogNet.ErrorInfo(ex.ToString()); throw; } }