gpt4 book ai didi

c# - 使用 C# SQL Server 调用在 "Using"范围内自动回滚吗?

转载 作者:太空狗 更新时间:2023-10-29 23:39:26 26 4
gpt4 key购买 nike

当您为 SQL 连接、事务和命令创建“using” block 时,众所周知,与 using block 关联的连接、事务或命令在您离开 using 后会自行正确处理堵塞。

如果在这些 block 之一中发生异常,例如在命令 block 中 - 事务是否会自行回滚,或者开发人员是否需要在命令“using” block 中执行 try catch,以及为这次try在catch中添加回滚事务语句?

最佳答案

只要您没有成功调用 Commit,事务就会自动回滚。所以你的 using block 可以看起来像这样,如果在 Commit 之前抛出异常,事务将被回滚。

using (IDbConnection connection = ...)
{
connection.Open();
using (IDbTransaction transaction = connection.BeginTransaction())
{
using (IDbCommand command = ...)
{
command.Connection = connection;
command.Transaction = transaction;
...
}
...
transaction.Commit();
}
}

关于c# - 使用 C# SQL Server 调用在 "Using"范围内自动回滚吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18388852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com