/// <summary> /// 切换数据库(修改数据库链接) /// </summary> internal DBResetResult ChangeDatabase(string dbName) { if (_con.State == ConnectionState.Closed)//事务中。。不允许切换 { try { if (IsExistsDbNameWithCache(dbName))//新的数据库不存在。。不允许切换 { string newConnString = GetConnString(dbName); _con.ConnectionString = newConnString; ConnObj = ConnObject.Create(dbName + "Conn"); ConnObj.Master.ConnName = dbName + "Conn"; ConnObj.Master.ConnString = newConnString; return(DBResetResult.Yes); } else { return(DBResetResult.No_DBNoExists); } } catch (Exception err) { Log.Write(err, LogType.DataBase); } } return(DBResetResult.No_Transationing); }
/// <summary> /// 切换数据库(修改数据库链接) /// </summary> /// <param name="dbName"></param> /// <returns></returns> internal DbResetResult ChangeDatabase(string dbName) { if (_con.State == ConnectionState.Closed)//事务中。。不允许切换 { try { if (IsExistsDbNameWithCache(dbName))//新的数据库不存在。。不允许切换 { conn = GetNewConn(dbName); _con.ConnectionString = ConnBean.RemoveConnProvider(dalType, conn); connObject = ConnObject.Create(dbName + "Conn"); connObject.Master.ConnName = dbName + "Conn"; connObject.Master.ConnString = conn; return(DbResetResult.Yes); } else { return(DbResetResult.No_DBNoExists); } } catch (Exception err) { Log.WriteLogToTxt(err); } } return(DbResetResult.No_Transationing); }
private static DalBase CreateDalBase(string connNameOrString) { //ABCConn DalBase db = GetDalBaseBy(ConnObject.Create(connNameOrString)); if (!string.IsNullOrEmpty(connNameOrString) && db.ConnObj.Master.ConnName.ToLower() != connNameOrString.ToLower() && connNameOrString.EndsWith("Conn"))//需要切换配置。 { //Conn A库 //BConn xxx 找不到时,找默认库。 DBResetResult result = db.ChangeDatabase(connNameOrString.Substring(0, connNameOrString.Length - 4)); if (result == DBResetResult.Yes) // 写入缓存 { db.ConnObj.SaveToCache(connNameOrString); } } return(db); }
//private const string SqlClient = "System.Data.SqlClient"; //private const string OleDb = "System.Data.OleDb"; //private const string OracleClient = "System.Data.OracleClient"; //private const string SQLiteClient = "System.Data.SQLite"; //private const string MySqlClient = "MySql.Data.MySqlClient"; //private const string SybaseClient = "Sybase.Data.AseClient"; //private const string PostgreClient = "System.Data.NpgSqlClient"; //private const string TxtClient = "CYQ.Data.TxtClient"; //private const string XmlClient = "CYQ.Data.XmlClient"; //private const string XHtmlClient = "CYQ.Data.XHtmlClient"; /// <summary> /// ¼òµ¥¹¤³§£¨Factory Method£© /// </summary> public static DalBase CreateDal(string connNameOrString) { //ABCConn DalBase db = GetDalBaseBy(ConnObject.Create(connNameOrString)); if (db.ConnObj.Master.ConnName != connNameOrString && connNameOrString.EndsWith("Conn"))//ÐèÒªÇл»ÅäÖᣠ{ //Conn A¿â //BConn xxx ÕÒ²»µ½Ê±£¬ÕÒĬÈÏ¿â¡£ DBResetResult result = db.ChangeDatabase(connNameOrString.Substring(0, connNameOrString.Length - 4)); if (result == DBResetResult.Yes) // дÈ뻺´æ { db.ConnObj.SaveToCache(connNameOrString); } } return(db); }