private bool RunSqlCommands(List <string> commands)
        {
            bool success = true;

            using (DbConnection connection = db.CreateConnection())
            {
                connection.Open();
                DbTransaction transaction = connection.BeginTransaction();

                try
                {
                    foreach (string command in commands)
                    {
                        using (DbCommand dbCmd = db.GetSqlStringCommand(command))
                        {
                            db.ExecuteNonQuery(dbCmd, transaction);
                        }
                    }
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    success = false;
                    Trace.WriteLine(ex.Message);
                    // Rollback transaction
                    transaction.Rollback();
                }
                connection.Close();
            }
            return(success);
        }
Exemple #2
0
        /// <summary>
        /// 数据库删除(使用微软企业库)
        /// </summary>
        /// <param name="db"></param>
        /// <param name="pdata"></param>
        /// <returns></returns>
        public static int DeleteById(Microsoft.Practices.EnterpriseLibrary.Data.Database db, object pdata)
        {
            //var db = DBFactory.CreateDefault();
            int n = 0;                                                    //影响的行数

            PropertyInfo[]      pro    = pdata.GetType().GetProperties(); //获取传来的对象的属性
            List <PropertyInfo> idlist = GetIdProperty(pro);              //找到主键属性

            using (DbConnection conn = db.CreateConnection())
            {
                conn.Open();
                StringBuilder sql     = new StringBuilder();
                StringBuilder sqlend  = new StringBuilder();
                string        table   = FindPropertyInfoValue(pdata, "TableName").ToString();
                string        sqltext = string.Empty;

                sql.AppendFormat("delete from {0} where", table);
                foreach (PropertyInfo item in idlist)
                {
                    sql.Append(" " + item.Name + " = '" + item.GetValue(pdata, null) + "'");
                }
                sqltext = sql.ToString();
                using (DbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sqltext;
                    n = cmd.ExecuteNonQuery();
                }
            }
            return(n);
        }
 public void BeginTransaction()
 {
     _db = new SqlDatabase(_strConnection);
     _dbConn = _db.CreateConnection();
     _dbConn.Open();
     _dbTrans = _dbConn.BeginTransaction();
 }
Exemple #4
0
 public DbTransaction BeginTransaction()
 {
     _db = DatabaseFactory.CreateDatabase();
     _connection = _db.CreateConnection();
     _connection.Open();
     _transaction = _connection.BeginTransaction();
     return _transaction;
 }
Exemple #5
0
 /// <summary>
 /// 获取指定表名的架构信息
 /// </summary>
 /// <param name="db"></param>
 /// <param name="tableName"></param>
 /// <returns></returns>
 public static DataTable GetSchema(Database db, string tableName)
 {
     DbDataAdapter ap = db.GetDataAdapter();
     DbCommand cmd = db.GetSqlStringCommand(string.Format("SELECT * FROM {0}", tableName));
     cmd.Connection = db.CreateConnection();
     ap.SelectCommand = cmd;
     DataTable t = new DataTable();
     ap.FillSchema(t, SchemaType.Mapped);
     return t;
 }
Exemple #6
0
        public object ExecuteScalar(string query, CommandType commandType, List <IDbDataParameter> parameters)
        {
            DbConnection _connection;

            _connection = _database.CreateConnection();
            _connection.Open();
            var cmd = commandType == CommandType.StoredProcedure ? _database.GetStoredProcCommand(query) : _database.GetSqlStringCommand(query);

            cmd.CommandTimeout = 300;
            cmd.Connection     = _connection;
            using (cmd)
            {
                if (parameters != null && parameters.Count > 0)
                {
                    cmd.Parameters.AddRange(parameters.ToArray());
                }
                return(_database.ExecuteScalar(cmd));
            }
        }
Exemple #7
0
 public void OpenConnection()
 {
     if (Connection == null)
     {
         Connection = _database.CreateConnection();
     }
     if (Connection.State == ConnectionState.Closed)
     {
         Connection.Open();
     }
 }
        public void TestInitialize()
        {
            EnvironmentHelper.AssertOracleClientIsInstalled();
            DatabaseProviderFactory factory = new DatabaseProviderFactory(OracleTestConfigurationSource.CreateConfigurationSource());
            db = factory.Create("OracleTest");
            storedProcedure = db.GetStoredProcCommand("NWND_CustOrdersOrders");
            connection = db.CreateConnection();
            connection.Open();
            storedProcedure.Connection = connection;
            cache = new ParameterCache();

            baseFixture = new ParameterDiscoveryFixture(storedProcedure);
        }
Exemple #9
0
        /// <summary>
        /// 数据库主键查询(使用微软企业库)
        /// </summary>
        /// <param name="pdata"></param>
        /// <returns></returns>
        public static object GetById(Microsoft.Practices.EnterpriseLibrary.Data.Database db, object pdata)
        {
            //var db = DBFactory.CreateDefault();
            PropertyInfo[]      pro    = pdata.GetType().GetProperties();//获取传来的对象的属性
            List <PropertyInfo> idlist = GetIdProperty(pro);

            using (DbConnection conn = db.CreateConnection())
            {
                conn.Open();
                StringBuilder sql     = new StringBuilder();
                StringBuilder sqlend  = new StringBuilder();
                string        table   = FindPropertyInfoValue(pdata, "TableName").ToString();
                string        sqltext = string.Empty;

                sql.AppendFormat("select * from {0} where", table);
                foreach (PropertyInfo item in idlist)
                {
                    if (item.Name == "TableName")
                    {
                        continue;
                    }
                    else
                    {
                        sql.Append(" " + item.Name + " = '" + item.GetValue(pdata, null) + "'");
                    }
                }
                sqltext = sql.ToString();
                using (DbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sqltext;
                    DbDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow);
                    dr.Read();
                    foreach (PropertyInfo item in pro)
                    {
                        if (item.Name == "TableName")
                        {
                            continue;
                        }
                        else
                        {
                            if (string.IsNullOrEmpty(dr[item.Name].ToString()))
                            {
                                continue;
                            }
                            item.SetValue(pdata, dr[item.Name], null);
                        }
                    }
                }
            }
            return(pdata);
        }
Exemple #10
0
        /// <summary>
        /// 数据库更新方法(使用微软企业库)
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static int Update(Microsoft.Practices.EnterpriseLibrary.Data.Database db, object obj)
        {
            //var db = DBFactory.CreateDefault();
            int n = 0;

            using (DbConnection conn = db.CreateConnection())
            {
                conn.Open();
                StringBuilder sql    = new StringBuilder();
                StringBuilder sqlend = new StringBuilder();
                //获取对象的属性数组
                PropertyInfo[] pro = obj.GetType().GetProperties();
                //主键属性数组
                List <PropertyInfo> idlist = GetIdProperty(pro);
                //要更新的数据表
                string table = FindPropertyInfoValue(obj, "TableName").ToString();
                //执行的sql语句
                string sqltext = string.Empty;
                //UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 and  列2=某值
                sql.Append("UPDATE " + table + " set");
                sqlend.Append("WHERE");
                //拼接sql语句主体
                foreach (PropertyInfo item in pro)
                {
                    if (item.Name == "TableName")
                    {
                        continue;
                    }
                    else
                    {
                        sql.Append(" " + item.Name + "= " + item.GetValue(obj, null));
                    }
                }
                //根据主键增加定位条件
                foreach (PropertyInfo item in idlist)
                {
                    sqlend.Append(" " + item.Name + "= '" + item.GetValue(obj, null) + ", and ");
                }
                string start = sql.ToString();
                start = start.Substring(0, start.Length - 1) + " ";
                string end = sqlend.ToString();
                end     = end.Substring(0, end.Length - 5) + " ";
                sqltext = start + end;
                using (DbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sqltext;
                    n = cmd.ExecuteNonQuery();
                }
            }
            return(n);
        }
Exemple #11
0
        public DbConnection OpenAndGetConnection(string ConfigConnectionDB)
        {
            #region
            try
            {
                USEDB = DatabaseFactory.CreateDatabase(ConfigConnectionDB);
                ConnectionDB = ConfigConnectionDB;

                Conn = USEDB.CreateConnection();
                Conn.Open();
                return Conn;

            }
            catch (Exception ex)
            {
                throw ex;
            }
            #endregion
        }
Exemple #12
0
 /// <summary>
 /// 通用保存(带前缀、限制_isIDENTITY_INSERT_OFF的单表获取)
 /// 示例(所有表保存):DAOHelp.UniversalizationSave(CommonApp.DBFactory.CreateDefault(), res, "[SLMSDB_I].[dbo].", "", true, "ID");
 /// 示例(指定表保存):DAOHelp.UniversalizationSave(CommonApp.DBFactory.CreateDefault(), res, "[SLMSDB_I].[dbo].", "SampleInfo", true, "ID");
 /// </summary>
 /// <param name="db">Database db = CommonApp.DBFactory.CreateDefault();</param>
 /// <param name="_model">model载具</param>
 /// <param name="_tablenameprefix">如果数据库表有限定开头(如[Common].[table1]),则必须加上前缀;没有前缀则留空(注意本处留空不能让所有表保存)</param>
 /// <param name="_tablenameNoprefix">指定表保存(注意这里是数据集的table,无前缀无[]),注意本处留空则所有表保存</param>
 /// <param name="_isIDENTITY_INSERT_OFF">是否关闭主键列插入功能(插入使用,一般为ID)</param>
 /// <param name="_identity">显式指定主键名称(_isIDENTITY_INSERT_OFF为true时,与其一起使用)</param>
 /// <returns></returns>
 public static int UniversalizationSave(Microsoft.Practices.EnterpriseLibrary.Data.Database db, object _model,
                                        string _tablenameprefix, string _tablenameNoprefix, bool _isIDENTITY_INSERT_OFF, string _identity)
 {
     using (var conn = db.CreateConnection())
     {
         conn.Open();
         var trans = conn.BeginTransaction();
         try
         {
             if (string.IsNullOrEmpty(_tablenameNoprefix))      //_table留空,保存全部
             {
                 var tables = _model.GetType().GetProperties(); //获取表集合
                 foreach (var t in tables)
                 {
                     var eltype = t.ToString().Split(' ')[0];
                     if (!eltype.Contains("DataTable"))
                     {
                         continue;
                     }
                     if (eltype.Substring(eltype.Length - 9) != "DataTable")
                     {
                         continue;
                     }
                     var table = t.GetValue(_model, null) as DataTable;//获取集合中的元素
                     if (table == null)
                     {
                         continue;
                     }
                     for (var i = 0; i < table.Rows.Count; i++)
                     {
                         //逐行执行
                         if (table.Rows[i].RowState == DataRowState.Added)
                         {
                             UniversalizationInsert(db, table.Rows[i], _tablenameprefix + t.Name,
                                                    _isIDENTITY_INSERT_OFF, _identity);
                             continue;
                         }
                         if (table.Rows[i].RowState == DataRowState.Modified)
                         {
                             UniversalizationUpdate(db, table.Rows[i], _tablenameprefix + t.Name, _identity);
                             continue;
                         }
                         if (table.Rows[i].RowState == DataRowState.Deleted)
                         {
                             UniversalizationDelete(db, table.Rows[i], _tablenameprefix + t.Name, _identity);
                             continue;
                         }
                         //trans.Commit();
                     }
                 }
             }
             else //_table不留空保存指定表
             {
                 var       tables = _model.GetType().GetProperties();//获取集合
                 DataTable table  = null;
                 foreach (var info in tables)
                 {
                     if (info.Name == _tablenameNoprefix)
                     {
                         table = info.GetValue(_model, null) as DataTable;//获取集合中的元素
                     }
                 }
                 if (table == null)
                 {
                     return(0);
                 }
                 for (var i = 0; i < table.Rows.Count; i++)
                 {
                     //逐行执行
                     if (table.Rows[i].RowState == DataRowState.Added)
                     {
                         UniversalizationInsert(db, table.Rows[i], _tablenameprefix + _tablenameNoprefix,
                                                _isIDENTITY_INSERT_OFF, _identity);
                         continue;
                     }
                     if (table.Rows[i].RowState == DataRowState.Modified)
                     {
                         UniversalizationUpdate(db, table.Rows[i], _tablenameprefix + _tablenameNoprefix, _identity);
                         continue;
                     }
                     if (table.Rows[i].RowState == DataRowState.Deleted)
                     {
                         UniversalizationDelete(db, table.Rows[i], _tablenameprefix + _tablenameNoprefix, _identity);
                         continue;
                     }
                     //trans.Commit();
                 }
             }
         }
         catch (Exception ex)
         {
             trans.Rollback();
             throw ex;
         }
     }
     return(0);
 }
 public DAReportPurchase()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
 public DAReceivingGoods()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
Exemple #15
0
Fichier : h.cs Projet : ghconn/mich
        DbCommand mDbCommand      = null;                                     //定义Command
        #endregion

        #region 构造函数
        public h(string configuration_connectionstring_node_name)
        {
            mDatabase  = DatabaseFactory.CreateDatabase(configuration_connectionstring_node_name);
            Connection = mDatabase.CreateConnection();
        }
Exemple #16
0
 /// <summary>
 /// 执行SQL语句事务,返回影响的记录数
 /// </summary>
 /// <param name="dc">查询语句</param>
 /// <param name="db">操作目标数据库</param>
 /// <returns>影响的记录数</returns>
 public static int ExecuteSqlTrans(DbCommand dc, Database db)
 {
     using (DbConnection connection = db.CreateConnection())
     {
         connection.Open();
         using (DbTransaction transaction = connection.BeginTransaction())
         {
             int rows = 0;
             try
             {
                 PrepareCommand(ref dc, db);
                 rows = db.ExecuteNonQuery(dc);
                 transaction.Commit();
             }
             catch (System.Exception e)
             {
                 transaction.Rollback();
                 throw new Exception(e.Message);
             }
             connection.Close();
             return rows;
         }
     }
 }
Exemple #17
0
 public DAOutputGoods()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
Exemple #18
0
        public static DataSet UpdateDataTable(
                Database db,
                DataSet ds,
                string tablename,
                string insert_sp_name, string[] insert_columns,
                string update_sp_name, string[] update_columns,
                string delete_sp_name, string[] delete_columns,
                RowStatus rowstate)
        {
            SqlDataAdapter da = new SqlDataAdapter();

            da.InsertCommand = SqlHelper.CreateCommand((SqlConnection)db.CreateConnection(), insert_sp_name, insert_columns);
            da.UpdateCommand = SqlHelper.CreateCommand((SqlConnection)db.CreateConnection(), update_sp_name, update_columns);
            da.DeleteCommand = SqlHelper.CreateCommand((SqlConnection)db.CreateConnection(), delete_sp_name, delete_columns);

            if (rowstate == RowStatus.None)
                da.Update(ds.Tables[tablename]);
            else
                if (ds.Tables[tablename].Select("", "",  (DataViewRowState)Convert.ToInt32(rowstate)).Length > 0)
                {
                    da.Update(ds.Tables[tablename].Select("", "",  (DataViewRowState)Convert.ToInt32(rowstate)));
                }
            return ds;
        }
Exemple #19
0
 /// <summary>
 /// Opens the connection.
 /// </summary>
 protected void OpenConnection()
 {
     db = DatabaseFactory.CreateDatabase("MyGym");
     connection = db.CreateConnection();
     connection.Open();
 }
Exemple #20
0
 public SQLWrapper()
 {
     db = DatabaseFactory.CreateDatabase(ConfigReader.ActiveConnectionStringKey);
     conn = db.CreateConnection();
     trans = null;
 }
 /// <summary>
 /// 创建并返回与当前 <see cref="DbProviderFactory"/> 关联的 <see cref="DbConnection"/> 对象。
 /// </summary>
 /// <param name="database">表示当前 <see cref="Microsoft.Practices.EnterpriseLibrary.Data.Database"/> 对象。</param>
 /// <returns>与当前 <see cref="DbProviderFactory"/> 关联的 <see cref="DbConnection"/> 对象。</returns>
 public static DbConnection CreateConnection(Database database)
 {
     return database.CreateConnection();
 }
Exemple #22
0
 public DAWarehouse()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
Exemple #23
0
 public DAManagement()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
Exemple #24
0
        /// <summary>
        /// 执行SQL语句事务,返回查询结果(object)。
        /// </summary>
        /// <param name="dc">查询语句</param>
        /// <param name="db">操作目标数据库</param>
        /// <returns>查询结果(object)</returns>
        public static object GetSingleBySqlTrans(DbCommand dc, Database db)
        {
            object obj;
            using (DbConnection connection = db.CreateConnection())
            {
                connection.Open();
                using (DbTransaction transaction = connection.BeginTransaction())
                {
                    try
                    {
                        PrepareCommand(ref dc, db);
                        obj = db.ExecuteScalar(dc);
                        transaction.Commit();
                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                        {
                            obj = null;
                        }
                    }
                    catch (System.Exception e)
                    {
                        transaction.Rollback();
                        throw new Exception(e.Message);
                    }
                    connection.Close();

                }
            }
            return obj;
        }
 public DATransferGoods()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
Exemple #26
0
 public void SetConnection()
 {
     _db = DatabaseFactory.CreateDatabase();
     _connection = _db.CreateConnection();
 }
Exemple #27
0
 public DAUbigeo()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
Exemple #28
0
        /// <summary>
        /// 构造
        /// </summary>
        /// <param name="db">数据库</param>
        public DataTransaction(Database db)
        {
            _db = db;

            IDbConnection dbConn = db.CreateConnection();
            SetConnectionMode(dbConn);
            dbConn.Dispose();
        }
 public DAStockInventory()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
Exemple #30
0
 public DASales()
 {
     DatabaseProviderFactory factory = new DatabaseProviderFactory();
     odb = factory.Create("PS");
     ocn = odb.CreateConnection();
 }
Exemple #31
0
 public DASecurity()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
 public DAModelArticle()
 {
     DatabaseProviderFactory factory = new DatabaseProviderFactory();
     odb = factory.Create("PS");
     ocn = odb.CreateConnection();
 }
Exemple #33
0
 public DAGenerics()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
Exemple #34
0
        /// <summary>
        /// DAAB Database에서 새로운 Connection을 생성하고 Open 합니다.
        /// </summary>
        /// <param name="db"></param>
        /// <param name="tryCount"></param>
        /// <returns></returns>
        private static DbConnection OpenConnection(Database db, int tryCount = 5) {
            DbConnection connection = null;

            for(var i = 0; i < tryCount; i++) {
                try {
                    connection = db.CreateConnection();
                    connection.Open();

                    if(connection.State == ConnectionState.Open)
                        return connection;
                }
                catch(Exception ex) {
                    if(log.IsErrorEnabled) {
                        log.Error("Database Connection 생성 및 Open 수행 시에 예외가 발생했습니다. 시도횟수=[{0}], ConnectionString=[{1}]", i + 1,
                                  db.ConnectionString);
                        log.Error(ex);
                    }
                    Thread.Sleep(5 * (i + 1));
                }
            }

            Guard.Assert(connection != null && connection.State != ConnectionState.Closed, "Connection을 생성하지 못했습니다!!!");
            return connection;
        }
 public DAReportPurchase()
 {
     DatabaseProviderFactory factory = new DatabaseProviderFactory();
     odb = factory.Create("PS");
     ocn = odb.CreateConnection();
 }
Exemple #36
0
        /// <summary>
        /// 数据库的插入或更新的方法(使用微软企业库)
        /// </summary>
        /// <param name="obj">要存入数据库的对象</param>
        /// <returns></returns>
        public static int Insert(Microsoft.Practices.EnterpriseLibrary.Data.Database db, object obj)
        {
            //var db = DBFactory.CreateDefault();
            var n = 0;

            using (DbConnection conn = db.CreateConnection())
            {
                conn.Open();
                StringBuilder sql    = new StringBuilder();
                StringBuilder sqlend = new StringBuilder();
                //获取对象的属性数组
                PropertyInfo[] pro = obj.GetType().GetProperties();
                //主键属性数组
                List <PropertyInfo> idlist = GetIdProperty(pro);
                //要更新的数据表
                string table = FindPropertyInfoValue(obj, "TableName").ToString();
                //执行的sql语句
                string sqltext = string.Empty;
                //INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
                sql.Append("INSERT INTO " + table + "(");
                sqlend.Append(" VALUES (");

                foreach (PropertyInfo item in pro)
                {//拼接sql语句主体
                    if (item.Name == "TableName")
                    {
                        continue;
                    }
                    else
                    {
                        string columnValue = item.GetValue(obj, null) + "";
                        if (string.IsNullOrEmpty(columnValue))
                        {//去掉空属性
                            continue;
                        }
                        if (item.PropertyType == typeof(DateTime))
                        {//时间属性初始化时未赋值会变为默认最小值
                            DateTime dt;
                            DateTime.TryParse(columnValue, out dt);
                            if (dt <= SqlDateTime.MinValue.Value)
                            {
                                continue;
                            }
                        }
                        sql.Append(" " + item.Name + ",");
                        sqlend.Append(" '" + columnValue + "',");
                    }
                }
                string start = sql.ToString();
                start = start.Substring(0, start.Length - 1) + ")";
                string end = sqlend.ToString();
                end     = end.Substring(0, end.Length - 1) + ")";
                sqltext = start + end;
                using (DbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sqltext;
                    n = cmd.ExecuteNonQuery();
                }
            }
            return(n);
        }
 public DAReceivingGoods()
 {
     DatabaseProviderFactory factory = new DatabaseProviderFactory();
     odb = factory.Create("PS");
     ocn = odb.CreateConnection();
 }
Exemple #38
0
 public DAModelArticle()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }
Exemple #39
0
 public DATypeReason()
 {
     odb = DatabaseFactory.CreateDatabase("PS");
     ocn = odb.CreateConnection();
 }