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

