在C#中需要做一个UPDATE处理,现不知道其中列表中总共有多少条记录需要更新,当在执行过程中间发生了更新错误,如何让前面和后面所有的数据都回滚为更新之前的状态?
如:
需更新的数据为10行,
int result =command.ExecuteNonQuery();当result=5时出现更新错误(错误原因暂不深究),后面及前面的所有数据都回滚。
在程序中如何写代码?
如果用Try{}catch{}语句如何返回这个错误?
如:
需更新的数据为10行,
int result =command.ExecuteNonQuery();当result=5时出现更新错误(错误原因暂不深究),后面及前面的所有数据都回滚。
在程序中如何写代码?
如果用Try{}catch{}语句如何返回这个错误?
using(//事务)
{
try
{
int result =command.ExecuteNonQuery();
trans.Commit(); //提交事务
}
catch()
{
trans.Rollback(); //回滚事务
}
}
using (SqlCommand cmd = con.CreateCommand())
{
SqlTransaction tran = con.BeginTransaction();
cmd.Transaction = tran;
try
{
foreach (string item in strSQL)
{
cmd.CommandText = item;
cmd.ExecuteNonQuery(); } tran.Commit();//如果都成功那么提交事物 }
catch (Exception ex)
{
index = -1;
//throw new Exception(ex.Message);
tran.Rollback();
} //index = com.ExecuteNonQuery();
}