C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句實(shí)例代碼
更新時間:2018年02月28日 10:48:13 作者:liyanzhao
這篇文章主要介紹了C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句實(shí)例代碼,需要的朋友可以參考下
具體代碼如下所示:
/// <summary> /// 啟用事務(wù)提交多條帶參數(shù)的SQL語句 /// </summary> /// <param name="mainSql">主表SQL</param> /// <param name="mainParam">主表對應(yīng)的參數(shù)</param> /// <param name="detailSql">明細(xì)表SQL語句</param> /// <param name="detailParam">明細(xì)表對應(yīng)的參數(shù)</param> /// <returns>返回事務(wù)是否成功</returns> public static bool UpdateByTran(string mainSql, SqlParameter[] mainParam, string detailSql, List<SqlParameter[]> detailParam) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; try { conn.Open(); cmd.Transaction = conn.BeginTransaction();//開啟事務(wù) if (mainSql != null && mainSql.Length != 0) { cmd.CommandText = mainSql; cmd.Parameters.AddRange(mainParam); cmd.ExecuteNonQuery(); } foreach (SqlParameter[] param in detailParam) { cmd.CommandText = detailSql; cmd.Parameters.Clear(); cmd.Parameters.AddRange(param); cmd.ExecuteNonQuery(); } cmd.Transaction.Commit();//提交事務(wù) return true; } catch (Exception ex) { if (cmd.Transaction != null) { cmd.Transaction.Rollback();//回滾事務(wù) } //將異常信息寫入日志 string errorInfo = "調(diào)用UpdateByTran(string mainSql, SqlParameter[] mainParam,string detailSql ,List <SqlParameter []>detailParam)方法時<br data-filtered="filtered">發(fā)生錯誤,具體信息:" + ex.Message; WriteLog(errorInfo); throw ex; } finally { if (cmd.Transaction != null) { cmd.Transaction = null;//清空事務(wù) } conn.Close(); } }
總結(jié)
以上所述是小編給大家介紹的C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
基于C#的UDP協(xié)議的同步通信實(shí)現(xiàn)代碼
本篇文章主要介紹了基于C#的UDP協(xié)議的同步實(shí)現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02C#調(diào)用非托管動態(tài)庫中的函數(shù)方法
這篇文章主要介紹了C#調(diào)用非托管動態(tài)庫中的函數(shù)方法,本文講解創(chuàng)建一個非托管動態(tài)庫,然后在C#中調(diào)用它,需要的朋友可以參考下2015-02-02