溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#如何啟用事務(wù)提交多條帶參數(shù)的SQL語句

發(fā)布時間:2021-07-22 11:08:34 來源:億速云 閱讀:161 作者:小新 欄目:編程語言

這篇文章主要介紹C#如何啟用事務(wù)提交多條帶參數(shù)的SQL語句,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

具體代碼如下所示:

/// <summary>
 /// 啟用事務(wù)提交多條帶參數(shù)的SQL語句
 /// </summary>
 /// <param name="mainSql">主表SQL</param>
 /// <param name="mainParam">主表對應(yīng)的參數(shù)</param>
 /// <param name="detailSql">明細表SQL語句</param>
 /// <param name="detailParam">明細表對應(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();
  }
 }

以上是“C#如何啟用事務(wù)提交多條帶參數(shù)的SQL語句”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI