关于微软SqlHelper的数据库关闭的有关问题

关于微软SqlHelper的数据库关闭的问题
关于微软SqlHelper的数据库关闭的有关问题

假设执行sql语句时出现错误,那么数据库怎么关闭?  等待它自动关闭吗?  为啥不用try catch去关闭啊?
------解决思路----------------------
引用:
Quote: 引用:

如果加了try,catch,catch里又把错误信息throw出来,那加个try有什么意义吗


你好,因为我经验不足,我可能认为只要出错了,就应该要直接关闭掉,我现在写的就是你说的这样,第一次抓到错误,先关闭连接,然后在抛出错误来。。 所以请教你一下, 有哪些情况是出错了,并不需要关闭连接的?知道了这些情况,  我可能会比较好理解一点

要不要关闭,是业务逻辑上的考虑,你要从需求出发来编代码,代码逻辑本身是没有对与错之分的(除非你是语法错误,直接编译不通过或运行时抛异常)
给你说下什么情况下不需要关闭数据库连接
1.本身就是使用长连接,比如每秒要写入数据库N多次,那么频繁打开关闭效率就比较低下,连接了就不关闭,直到业务结束
2.如果执行insert失败,确定不是sql语句问题(已经调试好,正在正常运行中,而不是你自己做测试的阶段),有可能是网络原因导致更新失败,那么需要程序自动进行重试,而不是直接把异常丢给用户拉倒
3.使用了事务,多个insert或update要么都执行成功,之后commit,要么有失败,执行rollback,此时你把数据库断开连接,还怎么回滚??