C# 啟用事務(wù)提交多條帶參數(shù)的SQL語(yǔ)句實(shí)例代碼
更新時(shí)間:2018年02月28日 10:48:13 作者:liyanzhao
這篇文章主要介紹了C# 啟用事務(wù)提交多條帶參數(shù)的SQL語(yǔ)句實(shí)例代碼,需要的朋友可以參考下
具體代碼如下所示:
/// <summary> /// 啟用事務(wù)提交多條帶參數(shù)的SQL語(yǔ)句 /// </summary> /// <param name="mainSql">主表SQL</param> /// <param name="mainParam">主表對(duì)應(yīng)的參數(shù)</param> /// <param name="detailSql">明細(xì)表SQL語(yǔ)句</param> /// <param name="detailParam">明細(xì)表對(duì)應(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();//開(kāi)啟事務(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ù) } //將異常信息寫(xiě)入日志 string errorInfo = "調(diào)用UpdateByTran(string mainSql, SqlParameter[] mainParam,string detailSql ,List <SqlParameter []>detailParam)方法時(shí)<br data-filtered="filtered">發(fā)生錯(cuò)誤,具體信息:" + ex.Message; WriteLog(errorInfo); throw ex; } finally { if (cmd.Transaction != null) { cmd.Transaction = null;//清空事務(wù) } conn.Close(); } }
總結(jié)
以上所述是小編給大家介紹的C# 啟用事務(wù)提交多條帶參數(shù)的SQL語(yǔ)句,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
基于C#的UDP協(xié)議的同步通信實(shí)現(xiàn)代碼
本篇文章主要介紹了基于C#的UDP協(xié)議的同步實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02C#訪(fǎng)問(wèn)及調(diào)用類(lèi)中私有成員與方法示例代碼
訪(fǎng)問(wèn)一個(gè)類(lèi)的私有成員不是什么好做法,大家也都知道私有成員在外部是不能被訪(fǎng)問(wèn)的,這篇文章主要給大家介紹了關(guān)于C#訪(fǎng)問(wèn)及調(diào)用類(lèi)中私有成員與方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-06-06C#調(diào)用非托管動(dòng)態(tài)庫(kù)中的函數(shù)方法
這篇文章主要介紹了C#調(diào)用非托管動(dòng)態(tài)庫(kù)中的函數(shù)方法,本文講解創(chuàng)建一個(gè)非托管動(dòng)態(tài)庫(kù),然后在C#中調(diào)用它,需要的朋友可以參考下2015-02-02c#使用微信接口開(kāi)發(fā)微信門(mén)戶(hù)應(yīng)用
本系列文章希望從一個(gè)循序漸進(jìn)的角度上,全面介紹微信的相關(guān)開(kāi)發(fā)過(guò)程和相關(guān)經(jīng)驗(yàn)總結(jié),希望給大家了解一下相關(guān)的開(kāi)發(fā)歷程。2014-03-03