visual studio 2010 -从c#代码中回滚插入错误
本文关键字:插入 错误 代码 studio 2010 visual | 更新日期: 2023-09-27 17:54:37
如果发生任何错误,我将插入一系列带有回滚选项的行。
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);
}
如果在循环中出现任何错误,则所有行都应该回滚。
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();
}
是,可以使用SqlTransaction
提交和回滚错误http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqltransaction.aspx