/// <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();
            }
        }
示例#2
0
        //从连接串中获取数据库所有者
        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);
        }