Exemplo n.º 1
0
        /// <summary>
        /// 获取 DbCommand
        /// </summary>
        /// <returns></returns>
        public static DbCommand GetDbDbCommand(DbConnConfig dbConnConfig)
        {
            DbCommand cmd = null;

            if (null == dbConnConfig)
            {
                throw new Exception("置数据库连接配置不能为空!");
            }

            switch (dbConnConfig.DbType)
            {
            case SupportDbType.SQLSERVER:

                cmd = new SqlCommand();
                break;

            case SupportDbType.MYSQL:
                cmd = new MySqlCommand();
                break;

            case SupportDbType.POSTGRESQL:
            case SupportDbType.ORACLE:
            default: throw new NotImplementedException();
            }



            return(cmd);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取一个 DataAdapter
        /// </summary>
        /// <returns></returns>
        public static DbDataAdapter GetDbDataAdapter(DbCommand selectCommand, DbConnConfig dbConnConfig)
        {
            DbDataAdapter dataAdapter = null;

            if (null == dbConnConfig)
            {
                throw new Exception("置数据库连接配置不能为空!");
            }

            switch (dbConnConfig.DbType)
            {
            case SupportDbType.SQLSERVER:
                dataAdapter = new SqlDataAdapter((SqlCommand)selectCommand);
                break;

            case SupportDbType.MYSQL:
                dataAdapter = new MySqlDataAdapter((MySqlCommand)selectCommand);
                break;

            case SupportDbType.POSTGRESQL:
            case SupportDbType.ORACLE:
            default: throw new NotImplementedException();
            }



            return(dataAdapter);
        }
Exemplo n.º 3
0
        private static bool IsExistSQLProcedure(DbConnConfig dbConfig, string procName)
        {
            var conStr = dbConfig.ConnString;

            if (string.IsNullOrEmpty(conStr))
            {
                throw new Exception("全局数据库连接未设定!");
            }

            //从数据库中检索  是否存在此存储过程
            var sql = string.Format("SELECT COUNT(0) FROM sysobjects a WHERE a.name='{0}' AND a.type='P'", procName);

            using (var conn = new SqlConnection(conStr))
            {
                if (conn.State != System.Data.ConnectionState.Open)
                {
                    conn.Open();
                }

                using (var cmd = new SqlCommand(sql, conn))
                {
                    int count = Convert.ToInt32(cmd.ExecuteScalar());
                    if (count > 0)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        ///  初始化数据库连接配置,从 配置文件:ConnectionStringSection节点
        /// </summary>
        /// <param name="isNeedConfigDb">是否需要配置数据库</param>
        /// <param name="isAsync">是否异步模式配置数据库</param>
        public static void Init(bool isNeedConfigDb = true, bool isAsync = true)
        {
            //设置数据库连接
            var connStringSection = ConfigHelper.GetConnectionStringSection();

            if (null == connStringSection)
            {
                throw new Exception("未发现数据库连接配置节点:ConnectionStringSection");
            }

            //将数据库连接节点装载到静态集合
            foreach (var itemConnString in connStringSection)
            {
                if (itemConnString.ConnectionString.Contains(@".\SQLEXPRESS"))
                {
                    continue;
                }
                var config = new DbConnConfig(itemConnString.ConnectionString)
                {
                    Name = itemConnString.Name,
                    Code = itemConnString.Code,
                    //ConnString = ,
                    ProviderName = itemConnString.ProviderName,
                    SqlOutPut    = itemConnString.SqlOutPut
                };
                if (GlobalDBConnection.AllDbConnConfigs.ContainsKey(config.Name))
                {
                    throw new Exception($"指定name {config.Name}的连接字符串已经存在!不允许重复!");
                }

                GlobalDBConnection.AllDbConnConfigs.Add(config.Name, config);
            }

            if (isNeedConfigDb == true)
            {
                //初始化-数据库
                //异步初始化
                var tsk_init = Task.Factory.StartNew(() =>
                {
                    GlobalDBConnection.InitDataBase(GlobalDBConnection.AllDbConnConfigs);
                });

                if (isAsync == false &&
                    null != tsk_init &&
                    tsk_init.IsCompleted == false)
                {
                    tsk_init.Wait();//等待此任务完成
                }
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 根据连接字符串名称  获取连接字符串配置
        /// </summary>
        /// <param name="connName"></param>
        /// <returns></returns>
        public static DbConnConfig GetDbConfig(string connName = Default_ConnName)
        {
            DbConnConfig dbConfig = null;

            if (string.IsNullOrEmpty(connName))
            {
                //必须有连接配置,如果没有 那么抛出异常
                dbConfig = GlobalDBConnection.AllDbConnConfigs.FirstOrDefault().Value;
            }
            else
            {
                //检测是否有name
                if (!GlobalDBConnection.AllDbConnConfigs.ContainsKey(connName))
                {
                    throw new Exception("指定的数据库连接名称不存在配置中!Name:" + connName);
                }
                dbConfig = GlobalDBConnection.AllDbConnConfigs[connName];
            }

            return(dbConfig);
        }
Exemplo n.º 6
0
        private static void CreateSQLProcedure(DbConnConfig dbConfig, string sqlCommand)
        {
            var conStr = dbConfig.ConnString;

            if (string.IsNullOrEmpty(conStr))
            {
                throw new Exception("全局数据库连接未设定!");
            }



            using (var conn = new SqlConnection(conStr))
            {
                if (conn.State != System.Data.ConnectionState.Open)
                {
                    conn.Open();
                }

                using (var cmd = new SqlCommand(sqlCommand, conn))
                {
                    cmd.ExecuteNonQuery();
                }
            }
        }
Exemplo n.º 7
0
 /// <summary>
 /// 数据上下文 构造函数
 /// </summary>
 /// <param name="dbConfig"></param>
 public SqlDbContext(DbConnConfig dbConfig)
 {
     this.DbConfig = dbConfig;
 }
Exemplo n.º 8
0
 /// <summary>
 /// 数据上下文构造函数
 /// </summary>
 /// <param name="dbConfig"></param>
 public MySqlDbContext(DbConnConfig dbConfig) : this()
 {
     this.DbConfig = dbConfig;
 }