此 SqlTransaction 已完成;它再也无法使用。解决思路
此 SqlTransaction 已完成;它再也无法使用。
测试网络稳定性时,程序调试到 AllCodes = MyService.GetAllOrders(tran);时,故意断开网络连接,程序报错,此 SqlTransaction 已完成;它再也无法使用。
------解决思路----------------------
tran.Rollback()前做判断,或扔进空try/catch里执行,或者干脆把tran扔进using,dispose时会rollback(最安全但大括号层数多了代码会比较难看= =)
------解决思路----------------------
把你的 try..catch 删掉。
当会话(DBConnection)遇到 using{ } 结构的结尾而自动关闭时,事务(没有执行到Commit代码部分)就自动回滚了。用不着你写 Roolback 代码。
------解决思路----------------------
这跟你程序没有关系,数据库中自增值就是这样设计的,你的事务中用过就不能再用了
这是因为当需要使用事务日志还原数据库的时候,可能会造成ID冲突,保证数据的唯一性这样做是有必要的
------解决思路----------------------
1.using在结束时会关闭连接和回滚;
2.应该是你在回滚之前事务就提交了才有这个错误。
测试网络稳定性时,程序调试到 AllCodes = MyService.GetAllOrders(tran);时,故意断开网络连接,程序报错,此 SqlTransaction 已完成;它再也无法使用。
------解决思路----------------------
tran.Rollback()前做判断,或扔进空try/catch里执行,或者干脆把tran扔进using,dispose时会rollback(最安全但大括号层数多了代码会比较难看= =)
------解决思路----------------------
把你的 try..catch 删掉。
当会话(DBConnection)遇到 using{ } 结构的结尾而自动关闭时,事务(没有执行到Commit代码部分)就自动回滚了。用不着你写 Roolback 代码。
------解决思路----------------------
这跟你程序没有关系,数据库中自增值就是这样设计的,你的事务中用过就不能再用了
这是因为当需要使用事务日志还原数据库的时候,可能会造成ID冲突,保证数据的唯一性这样做是有必要的
------解决思路----------------------
1.using在结束时会关闭连接和回滚;
2.应该是你在回滚之前事务就提交了才有这个错误。