Ejemplo n.º 1
0
        //   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;
            }
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 /// <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);
     }
 }
Ejemplo n.º 4
0
 /// <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;
     }
 }