请问,是否每次查询数据库时都要做数据库的连接?
请问:
1. 是否每次查询数据库时都要做数据库的连接?
2. 是否需要声明成公共变量,以便每次操作数据库时省略掉连接这个过程。请问大家一般是怎么做的?
3. 如果每次都进行连接,会有什么时候弊端?
谢谢!
public Cnn
Set Cnn = CreateObject("ADODB.Connection")
CnnStr = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=xxxxxx;Initial Catalog=DBname;Data Source=ServerName"
Cnn.Open CnnStr
------解决方案--------------------一般来说不建议每次查询都联接,因为这样消耗很多的资源。通常是缓冲池保证联接的重用
------解决方案--------------------
你可以先看下这篇文章, http://www.cnblogs.com/jxnclyk/archive/2010/04/27/1722007.html
一般来说, 你最好配置中写上连接池,.net 在连接串相同的情况下,会用同一个连接池里的连接而不是重新创建的——即使你的代码是new SqlConnection, 最终也不一会新创建连接。
如果在用户量非常小的情况下, 也可以创建一个静态的连接, 所有人共用这个连接即可。
当然, 这样做还是会产生一些问题的。
连接池技术已经非常成熟了, 你不需要考虑很多的。
------解决方案--------------------
连接池是.net 内部已处理好的东西,你只需要把连接串写好,基本上不需要你在代码里东改西改的了……
B/S和C/S与连接串没有任何关系, 谁来都是连……
其它要注意的是每次使用连接, 要注意关闭。