学习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类以后,对连接字符串的定义,操作都简单了很多。
尤其是对我这样的懒人而言,更是痛快了很多。