雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句實例代碼

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊:

具體代碼如下所示:

/// <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)站的支持!

上一篇:C# 在項目中引用x86 x64的非托管代碼的方法

欄    目:C#教程

下一篇:WPF實現(xiàn)2048小游戲

本文標(biāo)題:C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句實例代碼

本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/5251.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有