C# 使用事務

來源:互聯網
上載者:User
     事務可控制和維護事務中每個操作的一致性和完整性。具體說明可參考其它文章。
這裡主要是說明在C#中執行事務的使用方法。其代碼如下:

    /// <summary>
    /// 執行事務
    /// </summary>
    /// <param name="sSqlList">一次執行的多條語句列表</param>
    public void RunOldDbTransaction(string[] sSqlList)
    {
        sConnectionString = ConfigurationManager.AppSettings.Get("UserConnection");
        OracleConnection ocConnection = new OracleConnection(sConnectionString);
        ocConnection.Open();
        //建立並開啟事務
        OracleTransaction oraTrans = ocConnection.BeginTransaction(IsolationLevel.ReadCommitted);
        OracleCommand ocCommand = ocConnection.CreateCommand();
        ocCommand.Transaction = oraTrans;
        try
        {
            //迴圈事務中語句
            foreach (string sVal in sSqlList)
            {
                ocCommand.CommandText = sVal;
                ocCommand.ExecuteNonQuery();
            }
            //完成後確認事務
            oraTrans.Commit();
        }
        catch (Exception ex)
        {
            //出錯後復原事務
            oraTrans.Rollback();
            throw ex;
        }
        finally
        {
            ocConnection.Close();
        }
    }

註:SQL中用法BEGIN TRANS
  DECLARE @orderDetailsError int, @productError int
  //執行的語句1
  DELETE FROM Order Details WHERE ID=111
  //得到錯誤
  SELECT @orderDetailsError = @@ERROR
  //執行的語句2
  DELETE FROM Products WHERE ProductID=112
  //得到另外一個錯誤
  SELECT @productError = @@ERROR
  IF @orderDetailsError = 0 AND @productError = 0
    COMMIT TRANS
  ELSE
    ROLLBACK TRANS

這種方法可以查閱相關sql server 協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.