Example #1
0
        /// <summary>
        /// 打开新数据库
        /// </summary>
        /// <param name="name">数据库Key值</param>
        /// <returns></returns>
        public IDBHelper GetDbHelper(string name = "mySQL")
        {
            if (!dbDiction.ContainsKey(name))
            {
                AddDiction(name);
            }
            DBToolModel dbtool   = dbDiction[name];
            IDBHelper   dbHelper = InitDb(dbtool);

            return(dbHelper);
        }
Example #2
0
        public DBToolModel Add(string name, string dbDLLName, string dbConnString, string providerName)
        {
            DBToolModel dbtool   = new DBToolModel(name, dbDLLName, dbConnString, providerName);
            IDBHelper   dbHelper = InitDb(dbtool);

            if (!dbDiction.ContainsKey(name))
            {
                dbDiction.Add(name, dbtool);
            }

            return(dbtool);
        }
Example #3
0
 /// <summary>
 /// 内部连接数据库
 /// </summary>
 /// <param name="dbtool"></param>
 /// <returns></returns>
 private static IDBHelper InitDb(DBToolModel dbtool)
 {
     if (dbtool == null)
     {
         return(null);
     }
     try
     {
         //是否达到队列上限
         if (dbtool.dbHelperQueue.Count == dbtool.queueNum)
         {
             return(dbtool.dbHelperQueue.Dequeue());
         }
         if (dbtool.assembly == null)
         {
             string   filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin", dbtool.dbDLLPath);
             Assembly assembly = Assembly.LoadFile(filePath);
             //保存
             dbtool.assembly = assembly;
         }
         //连接数据库
         IDBHelper dbHelper = (IDBHelper)dbtool.assembly.CreateInstance(dbtool.providerName);
         dbHelper.initConnectString(dbtool.dbConnString);
         SystemLogger.getLogger().Info(dbtool.name + "数据库初始化成功");
         if (dbHelper != null)
         {
             dbtool.dbHelperQueue.Enqueue(dbHelper);
         }
         return(dbHelper);
     }
     catch (Exception ex)
     {
         SystemLogger.getLogger().Error("反射初始化数据库失败!", ex);
     }
     return(null);
 }