三九宝宝网宝宝百科宝宝知识

数据库连接一定要关闭吗

01月26日 编辑 39baobao.com

[我win10系统宽带连接是显示错误734 ppp链接协议终止]1:在“开始”菜单选择“控制面板”,进入控制面板后双击“网络连接” 2:在打开的“网络连接”窗口中,选择左边网络任务中的“创建一个新的连接”命令 3:在打开的“新建连接向导”...+阅读

但是有时候由于某些原因应用程序可能只是几个人使用,所以就有人设计了:在应用程序启动的时候打开数据库连接,在应用程序关闭的时候关闭数据库连接那么使用这种方式有什么问题呢?首先假设有一张表Nums,表定义如下:Main代码如下:SqlConnection conn = new SqlConnection("Data Source=.\SQLEXPRESS; AttachDbFilename=""E:\DB\NORTHWND.mdf""; Integrated Security=True;Connect Timeout=30;User Instance=True"); conn.Open(); Parallel.For(1, 9999, (id) =>{ ExecuteCommand(conn, id); }); 就是从1到9999开始执行ExecuteCommand ExecuteCommand代码如下:privatestaticvoid ExecuteCommand(SqlConnection conn, int id) { Console.WriteLine("正在执行." + id); Thread.Sleep(100); SqlCommand cmd = new SqlCommand( string.Format("Insert into Nums values('{0}') ", id), conn); cmd.ExecuteNonQuery(); }运行:可以看到ExecuteNonQuery方法抛出了异常,原因是连接处于关闭状态。

可是我们的连接一直都是open着的啊,并没有调用close,dispose之类的方法啊。于是在ExecuteCommand前面增加判断条件:if (conn.State != System.Data.ConnectionState.Open) conn.Open();再次运行:可以看到还是会出现连接已关闭的问题。你知道什么原因吗? 这里是由于多线程环境引起的。所以需要加锁。privatestaticobject syncObj = newobject(); privatestaticvoid ExecuteCommand(SqlConnection conn, int id) { lock (syncObj) { if (conn.State != System.Data.ConnectionState.Open) conn.Open(); Console.WriteLine("正在执行.." + id); Thread.Sleep(100); SqlCommand cmd = new SqlCommand( string.Format("Insert into Nums values('{0}') ", id), conn); cmd.ExecuteNonQuery(); } } 再次运行:可以发现基本没问题了.修改Parallel.For的最大值上限,要测试下是否可以长期执行了。

Parallel.For(1, Int32.MaxValue, (id) =>{ ExecuteCommand(conn, id); }); 一天测试下来,没出现任何问题。结论:对于某些只有几个人使用的应用程序,可以不关闭数据库连接,但是在写代码的时候最好要加上连接是否打开的判断。

以下为关联文档:

电脑上宽带连接控制协议终止是什么意思方法1、右键网上邻居,选择属性,将里面的宽带连接删除掉,重新建立宽带连接; 方法2、检查你的网络是否开通了(绿色上网)如果有,马上关掉; 方法3、可在网络连接--属性--安全--验证我的...

iPhone连接电脑没有显示是怎么回事呢方法一:打开iPhone设置-邮件、通信录、日历,往下拉找到“导入sim通信录”点击就可以了。 方法二:可以通过outlook/Windows Contacts等通讯录+iTunes来实现。 在iTunes里点击你...

iPhone连接电脑无反应是怎么回事iphone连接电脑无反应怎么办 iPhone手机经常会有一些下载方面的问题,不少网友iPhone连接电脑无反应,那么iphone连接电脑无反应怎么办呢?下面为大家介绍几种解决方法,不会的朋友...

苹果手机连接电脑不显示可能原因如下: 1、手机连接电脑后,在手机上选择了“不信任”选项 2、电脑USB端口出现问题 3、连接数据线出现问题或损坏 解决办法: 1、拔出数据线重新连入电脑,在手机端弹出的“...

iphone连接电脑没有显示一:电脑和iphone手机端通过电脑的USB连线时可以实现图片互相传输的目的的,可能楼主没有试过; 二:初步判定是由于电脑系统的设置被某些程序或软体恶意串改了,致使“照片”目录出现...

为什么我的iphone连接电脑不认了处理方法: 一、首先检查数据线是否完好,建议换一根原装数据线试一试。 二、然后检查apple mobile驱动是否正常,具体操作方法: 1、右键“我的电脑”--高级系统设置,在硬件选项下,点...

苹果连接电脑无反应这里有3个恢复方法 1:也是最简单的常用的打开iTunes软件,按住Shift 点击: 恢复 2:恢复模式,此模式有USB和ITUNES图标在IPHONE上显示, 进入方法:关机,然后按住HOME键插数据线,会出现白...

苹果手机连接电脑没反应1.检查USB线是否是好的。 2.检查电脑是否运行正常。 3.检查电脑安装的手机软件是360手机助手还是QQ手机管家,或者是豌豆荚手机软件。电脑上必须要有上面的3个软件中的其中一...

校园拨号器不能打开提示端口被占用请关闭程序打不开网页的原因及处理办法:1.与设置代理服务器有关 。有时出于某些方面考虑,在浏览器里设置了代理服务器(控制面板--Internet选项—连接—局域网设置—为LAN使用代理服务器),设...

推荐阅读
图文推荐