ADO.NET中添加事务
在存储过程中使用事务
-
直接将数据里端事务编写到存储过程中
-
应用程序直接调用带有事务的存储过程
当需要同时执行多条SQL更新语句时
-
使用ADO.NET专用的事务处理对象
-
编写通用的数据访问方法
ADO.NET中使用事务
C#中所编写的所有的事务都是通过SQL代码进行的编辑,但是在C#环境中所有的SQL代码都是字符串
public static int UpdateByTran(List<string> sqlList)
{
SqlConnection con = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
try
{
//开启数据库连接
con.Open();
//开始执行事务
cmd.Transaction = con.BeginTransaction();
int result = 0;
//遍历事务中的每一条SQL修改代码,保证遍历到的每一条SQL代码都会执行成功,才会执行到Commit,SQL语句中只要有一条SQL代码抛异常则都会进入Catch中
foreach (string sql in sqlList)
{
cmd.CommandText = sql;
//对每条SQL代码的执行结果进行接收
result+=cmd.ExecuteNonQuery();
}
cmd.Transaction.Commit();//提交事务
return result;
}
catch (Exception ex)
{
if (cmd.Transaction!=null)
{
cmd.Transaction.Rollback();
}
//throw new Exception("调用事务更新方法时出现异常!"+ex.Message) ;
return -1;
}
finally
{
if (cmd.Transaction!=null)
{
cmd.Transaction = null;
}
con.Close();
}
}