ADO.NET中添加事務

在存儲過程中使用事務

  1. 直接將數據裏端事務編寫到存儲過程中

  2. 應用程序直接調用帶有事務的存儲過程

當需要同時執行多條SQL更新語句時

  1. 使用ADO.NET專用的事務處理對象

  2. 編寫通用的數據訪問方法

ADO.NET中使用事務

C#中所編寫的所有的事務都是通過SQL代碼進行的編輯,但是在C#環境中所有的SQL代碼都是字符串

public static int UpdateByTran(List<string> sqlList)
        {
            SqlConnection con = new SqlConnection(constr);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            try
            {
                //開啓數據庫連接
                con.Open();
                //開始執行事務
                cmd.Transaction = con.BeginTransaction();
                int result = 0;
                //遍歷事務中的每一條SQL修改代碼,保證遍歷到的每一條SQL代碼都會執行成功,纔會執行到Commit,SQL語句中只要有一條SQL代碼拋異常則都會進入Catch中
                foreach (string sql in sqlList)
                {
                    cmd.CommandText = sql;
                    //對每條SQL代碼的執行結果進行接收
                    result+=cmd.ExecuteNonQuery();
                }
                cmd.Transaction.Commit();//提交事務
                return result;
            }
            catch (Exception ex)
            {
                if (cmd.Transaction!=null)
                {
                    cmd.Transaction.Rollback();
                }
                //throw new Exception("調用事務更新方法時出現異常!"+ex.Message) ;
                return -1;
            }
            finally
            {
                if (cmd.Transaction!=null)
                {
                    cmd.Transaction = null;
                }
                con.Close();
            }
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章