连接字符串的处理
有时候我们需要获得连接字符串里的各个参数,比如说服务器,数据库,用户名,密码等等信息
刚开始的时候我没有发现现成的办法去取得这些信息,就是使用的对连接字符串直接分析
方法如下:
///conn是连接字符串的Name string cc = ConfigurationManager.ConnectionStrings["conn"].ToString(); int firstindex = 0; int lastIndex = 0; Sname = SubStr(cc, ref firstindex, ref lastIndex);//服务器名称 SubStr(cc, ref firstindex, ref lastIndex);//数据库名 Uname = SubStr(cc, ref firstindex, ref lastIndex);//用户名 Passwd = SubStr(cc, ref firstindex, ref lastIndex);//密码 ////// 获取"="和";"之间的字符串 /// /// 连接字符串 /// "="的位置 /// ";"的位置 private string SubStr(string cc, ref int firstindex, ref int lastIndex) { firstindex = cc.IndexOf("=", lastIndex); lastIndex = cc.IndexOf(";", firstindex); return cc.Substring(firstindex + 1, lastIndex - firstindex - 1); }
这个方法有个明显的缺陷就是连接字符串的格式被限制死了,如果更换顺序或者中间增加参数就无效了
今天在学习C#3.0的时候发现了微软在.net2.0就增加了的实例成员,可以直接读取,设置字符串的各种参数
需要引用System.Data.SqlClient命名空间,它底下有个类SqlConnectionStringBuilder,通过这个类的实例我们可以创建或者管理连接字符串.
string cc = ConfigurationManager.ConnectionStrings["conn"].ToString();
SqlConnectionStringBuilder sb=new SqlConnectionStringBuilder(cc);
sb.DataSource;//服务器名称
sb.InitialCatalog;//数据库名
sb.UserID;//用户名
sb.Password;//密码
很明显微软自带的方法是很好使的,这个类还有其他成员,请自行查看