C# 使用 sql sever 事務
阿新 • • 發佈:2020-10-20
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(); }