我找到了一些关于回滚SQL Server查询的链接,但是在实现它时遇到了问题。由于我插入和更新的信息需要始终正确,我需要确保这是事先工作。现在,我已经有了一个try / catch块,我知道回滚会进入catch块。例如,这是我的代码:
using (SqlConnection conn5 = new SqlConnection(connString))
{
try
{
string query = "INSERT QUERY";
SqlCommand cmd = new SqlCommand(query, conn5);
// PARAMETERS
conn5.open();
cmd.ExecuteNonQuery();
}
catch
{
cmd.Rollback();
}
}
我试过cmd.RollBack()
,但它只是在我的脸上吹了。
答案 0 :(得分:5)
您打开一个交易范围。除非调用Complete()
方法,否则它将自动执行回滚。
using (var tScope = new TransactionScope())
using (SqlConnection conn5 = new SqlConnection(connString))
{
string query = "INSERT QUERY";
SqlCommand cmd = new SqlCommand(query, conn5);
PARAMETERS
conn5.open();
cmd.ExecuteNonQuery();
// If an exception is thrown, the call to Complete() will never be reached and the
// changes will be rolled back.
tScope.Complete();
}