在ADO.NET中,可以使用Connection和Transaction对象控制事务。事务处理需要一个数据库连接以及一个事务处理对象。ADO.NET事务实际上是把事务上下文传递到数据库层,如果事务中发生一个错误,数据库就会自动回滚。本地事务由System.Transactions提供的可提升性能的事务管理器进行管理。当这些事务由数据资源控制的时候,它们具有高效性并易于管理。例如:
public int sqltran(string[] sqlstr)
{
string connstring = "....";//数据库连接字符串
SqlConnection cn = new SqlConnection(connstring);
SqlCommand cmd = new SqlCommand();
int j = sqlstr.Length;
try
{
cn.Open();
}
catch (SqlException e)
{
throw new Exception(e.Message);
}
SqlTransaction trans = cn.BeginTransaction();//事务开始
try
{
cmd.Connection = cn;
cmd.Transaction = trans;
foreach (string str in sqlstr)
{
cmd.CommandText = str;
cmd.ExecuteNonQuery();
}
trans.Commit();//提交事务
return 0;
}
catch (SqlException e)
{
trans.Rollback();//事务回滚
return -1;
}
finally
{
cmd.Dispose();//释放事务
cn.Close();//关闭事务连接
}
}
在上面的这段代码中,方法 sqltran的作用就是接受一个包含SQL语句的数组,然后在事务中执行数组中的每一条SQL语句 |