/// <summary> /// 取得连接字符串中的信息 /// </summary> /// <param name="Connstr"></param> /// <param name="Svrname"></param> /// <param name="DbName"></param> /// <param name="Uid"></param> /// <param name="psw"></param> public static void GetDbNameUIdPsw(string Connstr, out string Svrname, out string DbName, out string Uid, out string psw) { Svrname = DbName = Uid = psw = null; Hashtable hsb = ConnectionStringAnalyzer.GetConnctionStringAtt(Connstr); //数据库地址 if (hsb.ContainsKey("DATA SOURCE")) { Svrname = hsb["DATA SOURCE"].ToString(); } else if (hsb.ContainsKey("SERVER")) { Svrname = hsb["SERVER"].ToString(); } else if (hsb.ContainsKey("ADDRESS ")) { Svrname = hsb["ADDRESS"].ToString(); } else if (hsb.ContainsKey("ADDR")) { Svrname = hsb["ADDR"].ToString(); } else if (hsb.ContainsKey("NETWORK ADDRESS")) { Svrname = hsb["NETWORK ADDRESS"].ToString(); } //数据库名称 if (hsb.ContainsKey("INITIAL CATALOG")) { DbName = hsb["INITIAL CATALOG"].ToString(); } else if (hsb.ContainsKey("DATABASE")) { DbName = hsb["DATABASE"].ToString(); } //用户名 if (hsb.ContainsKey("USER ID")) { Uid = hsb["USER ID"].ToString(); } //密码 if (hsb.ContainsKey("PASSWORD")) { psw = hsb["PASSWORD"].ToString(); } }
//从连接串中获取数据库所有者 private string GetDBOwner(string ConnString) { string DbOwner = null; Hashtable hsb = ConnectionStringAnalyzer.GetConnctionStringAtt(ConnString); if (hsb != null && hsb.ContainsKey("Provider")) { string Provider = hsb["Provider"].ToString().ToUpper(); if (Provider.StartsWith("ORAOLEDB") || Provider.StartsWith("MSDAORA")) { DbOwner = hsb["USER ID"].ToString().ToUpper(); } else if (Provider.StartsWith("SQLOLEDB")) { DbOwner = "DBO"; } } return(DbOwner); }
/// <summary> /// 更改连接字符串中的信息 /// </summary> /// <param name="Connstr"></param> /// <param name="Svrname"></param> /// <param name="DbName"></param> /// <param name="IsTrust"></param> /// <param name="Uid"></param> /// <param name="psw"></param> /// <param name="DbType"></param> /// <returns></returns> public static string ChangeDbNameUIdPsw(string Connstr, string Svrname, string DbName, bool IsTrust, string Uid, string psw, string DbType) { Hashtable hsb = ConnectionStringAnalyzer.GetConnctionStringAtt(Connstr); //数据库地址 if (hsb.ContainsKey("DATA SOURCE")) { hsb["DATA SOURCE"] = Svrname; } else if (hsb.ContainsKey("SERVER")) { hsb["SERVER"] = Svrname; } else if (hsb.ContainsKey("ADDRESS ")) { hsb["ADDRESS "] = Svrname; } else if (hsb.ContainsKey("ADDR")) { hsb["ADDR"] = Svrname; } else if (hsb.ContainsKey("NETWORK ADDRESS")) { hsb["NETWORK ADDRESS"] = Svrname; } else { hsb.Add("DATA SOURCE", Svrname); } if (DbType.ToUpper().Equals("SQLSERVER")) { //数据库名称 if (hsb.ContainsKey("INITIAL CATALOG")) { hsb["INITIAL CATALOG"] = DbName; } else if (hsb.ContainsKey("DATABASE")) { hsb["DATABASE"] = DbName; } else { hsb.Add("INITIAL CATALOG", DbName); } string StrProvider = "PROVIDER"; if (hsb.ContainsKey(StrProvider)) { hsb[StrProvider] = "SQLOLEDB"; } } else if (DbType.ToUpper().Equals("ORACLE")) { if (hsb.ContainsKey("INITIAL CATALOG")) { hsb.Remove("INITIAL CATALOG"); } string StrProvider = "PROVIDER"; if (hsb.ContainsKey(StrProvider)) { hsb[StrProvider] = "OraOLEDB.Oracle.1"; } } //用户名 if (hsb.ContainsKey("USER ID")) { hsb["USER ID"] = Uid; } else { hsb.Add("USER ID", Uid); } //密码 if (hsb.ContainsKey("PASSWORD")) { hsb["PASSWORD"] = psw; } else { hsb.Add("PASSWORD", psw); } Connstr = null; if (IsTrust)//信任链接,不需要用户名,密码 { hsb.Remove("USER ID"); hsb.Remove("PASSWORD"); if (!hsb.ContainsKey("INTEGRATED SECURITY")) { hsb.Add("INTEGRATED SECURITY", "SSPI"); } if (!hsb.ContainsKey("PERSIST SECURITY INFO")) { hsb.Add("PERSIST SECURITY INFO", "False"); } } else//非信任链接 { if (hsb.ContainsKey("INTEGRATED SECURITY")) { hsb.Remove("INTEGRATED SECURITY"); } if (hsb.ContainsKey("PERSIST SECURITY INFO")) { hsb.Remove("PERSIST SECURITY INFO"); } } foreach (string key in hsb.Keys) { Connstr += key + "=" + ConnStringValueEncoding(hsb[key].ToString()) + ";"; } return(Connstr); }