Code Bye

问个C#和数据库的一个问题

本人在登录界面连接了数据库 然后进入主界面
怎么样在主界面引用之前写的 SqlConnection con
不至于再重新连接一次吧
解决方案

5

执行1次数据库操作,就关掉数据库.
可以考虑数据库连接池..  具体本人查查资料学习吧..

5

看用的是不是一个对象,但是本人好像都是释放掉,后面需要再连接的。

5

SqlConnection这玩意别试图一劳永逸,老老实实的每次打开、关闭。

15

引用 LZ sinat_34102568 的回复:

本人在登录界面连接了数据库 然后进入主界面
怎么样在主界面引用之前写的 SqlConnection con
不至于再重新连接一次吧

SqlConnection 底层是基于连接池的。也就是说,假如你写

.... new SqlConnection(connStr)

这时候你创建的逻辑连接对象,其底层本来就是自动重复使用之前的物理连接的。
它是自动化的,原因是有可能之前的连接池里有不止1个物理连接可用,说不定有2个、3个、10个,连接池会选择一个最新空闲的物理连接,也会自动释放最早空闲的物理连接,等等操作。
所以,不用 new SqlConnection(…) 这种写法,反而是用不到连接池技术的。看似本人“共享了”什么对象,其实是没有用到好的编程模式。

10

新建一个链接数据库的类,然后要用到就直接调用就可以了

5

数据库连接池是有限的资源
即用即连接,用完马上关闭
推荐用法
using(var conn = SqlConnection(strConnectString))
{
//DOSOMETHING
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问个C#和数据库的一个问题