mysql c# 执行多条sql语句_C# 执行多条SQL更新语句,实现数据库事务

本文档展示了如何在C#中使用SqlConnection类执行多条SQL语句并实现数据库事务管理。通过创建ExecuteSqlTransaction方法,将SQL语句和参数封装在ExecuteableUnit结构中,然后在事务内逐一执行,确保数据的一致性。当发生异常时,会回滚事务以保持数据完整性。
摘要由CSDN通过智能技术生成

classProgram

{class Result{publicT data;public stringMessage;public boolSuccess;public stringStackTrace;

}structExecuteableUnit

{public stringSQL;publicSqlParameter[] param;

}///

///执行多条SQL语句,实现数据库事务。///

/// SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])

private static Result ExecuteSqlTransaction(paramsExecuteableUnit[] executeableUnits)

{using (SqlConnection connection = new SqlConnection(""))

{

connection.Open();

SqlCommand command=connection.CreateCommand();

SqlTransaction transaction=connection.BeginTransaction();

command.Connection=connection;

command.Transaction=transaction;int result = 0;try{foreach(ExecuteableUnit exeUnit inexecuteableUnits)

{

command.CommandText=exeUnit.SQL;if(exeUnit.param.GetLength(1) > 0)

{foreach(SqlParameter p inexeUnit.param)

command.Parameters.Add(p);

}

result+=command.ExecuteNonQuery();

}

transaction.Commit();

}catch(Exception ex)

{//Attempt to roll back the transaction.

try{

transaction.Rollback();

}catch(Exception ex2)

{return new Result()

{

Success= false, Message = ex2.Message, StackTrace =ex2.StackTrace

};

}return new Result()

{

Success= false, Message = ex.Message, StackTrace =ex.StackTrace

};

}finally{//Attempt to roll back the transaction.

try{

connection.Close();

}catch(Exception ex)

{

}

}return new Result()

{

Success= true, data =result

};

}

}public static void Main(string[] args)

{

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值