C#通过ADO.NET开启事务查询

C#通过ADO.NET开启事务查询

在自己的数据库操作类定义一个方法

/// <summary>
/// 使用事务进行数据库操作
/// </summary>
/// <param name="sql">查询字符串</param>
/// <param name="parameters">参数键值对</param>
/// <returns>返回受影响的行数</returns>
public static int CommandWithTransition(string sql, SqlParameter[] parameters)
{
    SqlConnection cnn = OpenConnection();   //打开连接
    SqlTransaction tranc = cnn.BeginTransaction(); ;   //开启事务
    try
    {
        SqlCommand cmd = new SqlCommand(sql, cnn);
        cmd.Parameters.AddRange(parameters);
        cmd.Transaction = tranc;
        int result = cmd.ExecuteNonQuery();
        tranc.Commit();    //接受事务
        return result;
    }
    catch (Exception ex)
    {
        tranc.Rollback();    //发生异常时回滚
        tranc.Dispose();
        throw ex;     //把异常抛出
    }
    finally
    {
        cnn.Close();
    }
}

这个方法在操作发生异常的时回滚事务,数据回滚到未操作的状态,并把错误重新抛出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值