1. 程式人生 > 實用技巧 >C# 使用 sql sever 事務

C# 使用 sql sever 事務

            SqlConnection conn = new SqlConnection("Data Source=****;Initial Catalog=****;User ID=***;Password=****");
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            SqlTransaction transaction = conn.BeginTransaction(); //開始事務
         try
            {

                cmd.Connection 
= conn; cmd.Transaction = transaction; cmd.CommandType = CommandType.Text; cmd.CommandText = " select * from prediction_group (xlock) where prediction_date_ID=@prediction_date_ID"; cmd.Parameters.AddWithValue("@prediction_date_ID", 4
); SqlDataReader reader2 = cmd.ExecuteReader(); reader2.Read(); string sample2 = reader2["sample2"].ToString(); reader2.Close(); cmd.CommandText = "update prediction_group set sample2 = '" + sample2 + "' WHERE ID =@ID
"; cmd.Parameters.AddWithValue("@ID", 4); cmd.Parameters.AddWithValue("@sample2", 4); cmd.ExecuteNonQuery(); transaction.Commit(); //事務完成之後提交事務 } catch (Exception ex) { transaction.Rollback(); //如果事務沒有完成,就回滾事務 throw; } finally { conn.Close(); }