如沐博客-互联网观察者

致力于互联网产业的发展

« [转]SqlHelper.ExecuteReader方法返回的sqlDataReader的connection是如何关闭的?C#多线程 »

SQL数据库链接关闭

1楼

程序应该使用了工厂模式设计的,相当于数据库连接池,你只看了部分代码,我看你上次问过这个问题,程序执行的时候,判断数据库连接如果已经OPEN了就不在OPEN了,如果CLOSE的才OPEN,所以你用的是同一个数据库连接。不会出现很多连数据库的连接。
说白了就是数据库连接池,自己好好研究下吧。

2楼

至于为什么数据库连接没有close, 看这句:
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
注意后面的 CommandBehavior.CloseConnection 在执行语句后会关闭
还有在执行 DataReader.Close()类似操作的时候同时也会关闭
还有sqlDataAdapter也会自动帮你关闭
不过总的来说,以手工方式关闭连接通常是最安全的,close()
1楼的答案思路很不正确,楼主可不要建立这种错误的数据库访问思想,每次数据库访问都会打开一个新的连接,同一个用户两次访问就建立两次,所以释放数据库连接是绝对必要的,

一般我们不是petshop这种写法 我们是这样写的:

try {} catch{db.close} finall{db.close} //这里注意finall里面的close是必须的

有空深入下

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Copyright 2010-2021 25230.NET All Rights Reserved.