方法完成了数据库连接不关闭后果关闭了么

首先要说明的是连接数是有限制嘚:

过一会就会提示打开连接超时了:

可以看到数据库连接不关闭后果时有限制的如果连接不关闭,而且使用的人比较多那么系统很赽就down掉了。

但是有时候由于某些原因应用程序可能只是几个人使用所以就有人设计了:

在应用程序启动的时候打开数据库连接不关闭后果,在应用程序关闭的时候关闭数据库连接不关闭后果

那么使用这种方式有什么问题呢

首先假设有一张表Nums,表定义如下:

 

可以看到ExecuteNonQuery方法拋出了异常原因是连接处于关闭状态。

可是我们的连接一直都是open着的啊并没有调用close,dispose之类的方法啊

可以看到还是会出现连接已关闭嘚问题。你知道什么原因吗

这里是由于多线程环境引起的。所以需要加锁

再次运行:可以发现基本没问题了.

修改Parallel.For的最大值上限,要测試下是否可以长期执行了

一天测试下来,没出现任何问题

结论对于某些只有几个人使用的应用程序,可以不关闭数据库连接不关闭後果但是在写代码的时候最好要加上连接是否打开的判断。

你有什么好的看法呢欢迎留下!

我要回帖

更多关于 数据库连接不关闭后果 的文章

 

随机推荐