心雨纷扬

 

连接字符串的处理

有时候我们需要获得连接字符串里的各个参数,比如说服务器,数据库,用户名,密码等等信息

刚开始的时候我没有发现现成的办法去取得这些信息,就是使用的对连接字符串直接分析

方法如下:

///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;//密码

很明显微软自带的方法是很好使的,这个类还有其他成员,请自行查看

posted on 2011-03-05 00:35  心雨纷扬  阅读(295)  评论(0编辑  收藏  举报

导航