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ù)
}
//將異常信息寫入日志
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#運(yùn)行程序時(shí)阻止關(guān)閉顯示器和系統(tǒng)待機(jī)
這篇文章介紹了C#運(yùn)行程序時(shí)阻止關(guān)閉顯示器和系統(tǒng)待機(jī)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
C#實(shí)現(xiàn)listview Group收縮擴(kuò)展的方法
這篇文章主要介紹了C#實(shí)現(xiàn)listview Group收縮擴(kuò)展的方法,結(jié)合實(shí)例形式分析了listview控件的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-03-03
C# ADO.NET 離線查詢的實(shí)現(xiàn)示例
這篇文章主要介紹了C# ADO.NET 離線查詢的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
C# GetField方法的應(yīng)用實(shí)例講解
C#中的GetField是一個(gè)反射方法,用于獲取指定類型的字段信息,它可以通過(guò)字段名稱來(lái)獲取字段對(duì)象,并且可以在運(yùn)行時(shí)動(dòng)態(tài)地訪問(wèn)和操作這些字段,本文給大家介紹了C# GetField方法的應(yīng)用,需要的朋友可以參考下2024-04-04
WPF使用觸發(fā)器需要注意優(yōu)先級(jí)問(wèn)題解決
本文主要介紹了WPF使用觸發(fā)器需要注意優(yōu)先級(jí)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01

