学习C#很久了,但是,一直以来对连接字符串都不能够很好的掌握和了解。一直到最近才有时间自己研究。
所谓连接字符串,就是:ConnectionString
【开发环境:VS2008,SQL SERVER 2005】

平时呢,我们大家多数都是使用配置文件保存连接字符串的,打开App.config配置文件,能看到以下节点:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
  <connectionStrings> 
    <add name ="myconn" connectionString="server=./sqlexpress;database=my;uid=sa;pwd=sa"/> 
  </connectionStrings> 
</configuration>


在应用程序访问数据库的时候,只需要在后台代码里以如下方式访问即可:

SqlConnection conn = new SqlConnection 
                (ConfigurationManager.ConnectionStrings["myconn"].ConnectionString);


然后即可对SqlConnection对象进行Open或者Close操作了。

当然,上面的做法在应用程序开发以及WEB开发中都是常用的。
条条大路通罗马,方法也不止这么一种;

连接字符串也是可以保存在注册表里,或者是一些其他类型的配置文件,或者封装到动态链接库里。
还可以进行加密,在读取的时候揭秘,等等等等,我就不一一介绍了。

主要说下SqlConnectionStringBuilder对连接字符串的处理,下面以代码为例:

SqlConnectionStringBuilder sc = new SqlConnectionStringBuilder(); 
            sc.DataSource = @"./SQLExpress"; //SQL SERVER2005和2000是不太一样的 
            sc.InitialCatalog = "my";        //获取或设置与该连接关联的数据库的名称。 
            sc.UserID = "sa";   //账号 
            sc.Password = "sa"; //密码 
            sc.Pooling = true; 
            //获取或设置一个布尔值,该值指示每次请求连接时该连接是汇入连接池还是显式打开。 
            //默认值是true 
            sc.MaxPoolSize = 50; 
            //获取或设置针对此特定连接字符串连接池中所允许的最大连接数。 
            //默认值是100 
            sc.MinPoolSize = 10; 
            //获取或设置针对此特定连接字符串连接池中所允许的最小连接数。 
            //默认值是0 
            sc.PersistSecurityInfo = false; 
            //获取或设置一个布尔值,该值指示如果连接是打开的或者一直处于打开状态, 
            //那么安全敏感信息(如密码)是否将不作为连接的一部分返回。 
            sc.Enlist = true; 
            //获取或设置一个布尔值,该值指示 SQL Server 连接池程序是否在创建线程的当前事务上下文中自动登记连接。 
            sc.ConnectTimeout = 10; 
            //或缺或设置连接超时时间。如果未指定,默认就是15 
            SqlConnection conn = new SqlConnection(sc.ConnectionString); 
             
            conn.Open(); 
            MessageBox.Show("连接成功!"); 
            conn.Close();




由此可见自从有了SqlConnectionStringBuilder类以后,对连接字符串的定义,操作都简单了很多。
尤其是对我这样的懒人而言,更是痛快了很多。