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

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