建立数据库连接(19)
在对数据库操作之前我们需要对数据库建立链接,我们使用connection对象建立链接,根据不同的连接方法,选择对应的数据提供程序。我们一SQL数据库为例,首先要添加命名空间system.data.sqlclient命名空间,通过sqlconnection对象来建立打开数据库,具体步骤如下:
- 定义连接字符串
如果使用集成安全性连接本地服务器中心中的pubs数据库,可以这样定义连接字符串:
string ConnectionString="Server=localhost;Database=pubs;integrated security=SSPI;";
如果使用数据库账号的安全性连接本地服务器pubs数据库,可以这样定义连接字符串:
string ConnectionString="Server=localhost;Database=pubs;user id=da; password=;";
声明完连接字符串后我们一般还会使用连接池,连接池会更好的解决数据库访问过程中数据库资源的开销问题,比如启用连接池,设置连接池最小的连接数位4,最大连接数为30,连接池最大连接数默认为100,最小默认值为0,代码如下:
string ConnectionString="Server=localhost;Database=pubs;user id=da; password=;Pool=true;Min Pool Size=4; Max Size=30";
2.创建连接对象
定义好连接字符串后,就可以调用构造函数创建连接对象代码:
SqlConnection conn=new SqlConnection(ConnectionString);
3.打开连接
调用连接对象conn的Open方法,以打开连接:
conn.open();
注意:对于连接池而言,要调用连接对象的Close或Dispose方法关闭连接,连接对象才能返回连接池。
连接池:连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。当一个连接被其他线程使用时,其他线程不能对此连接进行操作,线程使用完连接后必须返回连接池,才能被其他线程所使用。可以把连接池理解为一个池塘,如果一个人想从池塘把水放到另一个容器中,就需要勺子(当然是大勺子)把水挪动到容器中,连接就像是勺子,可以让每个线程使用,但是只能一个人(线程)使用,当连接闲置时必须放回连接池(池塘)中才能被他人(其他线程)使用。