C#代码插入错误时回滚
如果发生任何错误,我将使用回滚选项插入一系列行C#代码插入错误时回滚,c#,visual-studio-2010,sql-server-2008,C#,Visual Studio 2010,Sql Server 2008,如果发生任何错误,我将使用回滚选项插入一系列行 BEGIN TRY BEGIN TRANSACTION INSERT INTO myTable (myColumns ...) VALUES (myValues ...); INSERT INTO myTable (myColumns ...) VALUES (myValues ...); COMMIT TRAN -- Transaction Success! END TRY BEGIN CATCH IF @@TRANCOUN
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN -- Transaction Success!
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN --RollBack
END CATCH
在C#中,我在for循环中插入行。在这里也能达到同样的功能吗
foreach(string lst in str[])
{
//insert query
dbl.ExecSqlNonQuery("sp_tbltest", CommandType.StoredProcedure);
}
如果循环中出现任何错误,所有行都应回滚。是,
您可以使用SqlTransaction提交和回滚错误
您应该调查
将XACT\u ABORT设置为ON将如何更改您的代码。谁是事务
?对的
try
{
using (TransactionScope scope = new TransactionScope())
{
//// create the connection
using (SqlConnection connection1 = new SqlConnection(connectString1))
{
//// open the connection
connection1.Open();
foreach(string lst in str[])
{
//insert query
connection1.ExecSqlNonQuery("sp_tbltest", CommandType.StoredProcedure);
}
}
scope.Complete();
}
}
catch (Exception)
{
scope.Rollback();
}