try catch 多條語句事務處理,失敗回滾

List<string> sqllist = new List<string>();

string grade_sqlCmd ="";

sqllist.Add(grade_sqlCmd);

using (SqlConnection connection = new SqlConnection(SQLHelper.NukeDBConnectionString))

{

   connection.Open();

   SqlCommand cmd = new SqlCommand();

   cmd.Connection = connection;

   SqlTransaction tx = connection.BeginTransaction();

   cmd.Transaction = tx;

   try

   {

    for (int n = 0; n < sqllist.Count; n++)

    {

      string strsql = sqllist[n];

      if (strsql.Trim().Length > 1)

      {

        cmd.CommandText = strsql;

        cmd.ExecuteNonQuery();

       }

     }

     tx.Commit();//執行事務

     return new ExecResultData(true);

    }

    catch

    {

       tx.Rollback(); //回滾事務

       return new ExecResultData("執行失敗");

    }

    finally

    {

       cmd.Dispose();

       connection.Close();

    }

}

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