Exemplo n.º 1
0
        /// <summary>创建连接</summary>
        /// <param name="dbtype">数据库类型</param>
        /// <param name="connectionString">连接字符串</param>
        /// <returns></returns>
        public static DbConn CreateConn(DbType dbtype, string connectionString)
        {
            DbConn cn = null;

            switch (dbtype)
            {
            case DbType.SQLSERVER:
                cn = new DbConnSqlServer();
                break;

            //case DbType.ORACLE:
            //    cn = new DbConnOracle();
            //    break;
            //case DbType.ORACLE_NEW:
            //    cn = new DbConnOracleNew();
            //    break;
            case DbType.MYSQL:
                cn = new DbConnMySql();
                break;

            default:
                throw new Exception("该数据库类型不适合使用CreateConn,请用new创建!");
            }
            cn.ConnString = connectionString;

            return(cn);
        }
Exemplo n.º 2
0
        /// <summary>创建连接</summary>
        /// <param name="dbtype">数据库类型</param>
        /// <param name="ACn">已有的连接</param>
        /// <returns></returns>
        public static DbConn CreateConn(DbType dbtype, DbConnection ACn)
        {
            DbConn cn = null;

            switch (dbtype)
            {
            //case DbType.SQLSERVER:
            //    cn = new DbConnSqlServer();
            //    break;
            //case DbType.ORACLE:
            //    cn = new DbConnOracle();
            //    break;
            case DbType.MYSQL:
                cn = new DbConnMySql();
                break;

            default:
                throw new Exception("该数据库类型不适合使用CreateConn,请用new创建!");
            }
            cn._conn = ACn;
            return(cn);
        }
Exemplo n.º 3
0
        private int SetDataAction()
        {
            if (listinsert.Count == 0)
            {
                //Config.Log.Write("SetDataAction 空转");//test
                return(0);
            }
            Config.ExecModel insert_model = null;
            lock (lock_listinsert)
            {
                if (listinsert.Count > 0)
                {
                    insert_model = listinsert[0];
                    listinsert.Remove(insert_model);
                }
            }
            if (insert_model == null)
            {
                return(0);
            }
            if (setdatamysqlconn == null)
            {
                var dbconn2 = DbConn.CreateConn(DbType.MYSQL, actmodel.database2.source, actmodel.database2.port, actmodel.database2.database, actmodel.database2.userid, actmodel.database2.password);
                dbconn2.Open();
                setdatamysqlconn = dbconn2 as DbConnMySql;
            }
            // Stopwatch swofexce = new Stopwatch();
            //  swofexce.Start();

            //Config.Log.Write("---SetDataAction Sql执行开始");
            setdatamysqlconn.BeginTransaction();
            try
            {
                setdatamysqlconn.ExecuteSqlLocal(insert_model.sql, insert_model.paras, -1);
                setdatamysqlconn.Commit();
                // swofexce.Stop();

                //  Config.Log.Write("---SetDataAction Sql执行用时:{0}", swofexce.Elapsed.TotalMilliseconds.ToString("0.00"));

                setdataerrorcount = 0;
            }
            catch (Exception ex)
            {
                setdataerrorcount++;
                setdatamysqlconn.Rollback();
                lock (lock_listinsert)
                {
                    listinsert.Insert(0, insert_model);
                }
                Config.Log.Error("插入数据出错:" + ex.Message);
                if (setdataerrorcount >= 3)
                {
                    setdataerrorcount = 0;
                    throw ex;
                }
                else
                {
                    return(-1);
                }
            }
            currentprocesscount += insert_model.count;
            return(insert_model.count);
        }