Bác thay vào thế này: using (TransactionScope scope= new TransactionScope(TransactionScopeOption.Suppress))
K hiểu sao bài liên quan cái này liên tục bị mod del.
Đây là đoạn code của mình !!Code:using (TransactionScope scope = new TransactionScope()) { clss_gd.themtknop(); clss_pnop.thempnop(); clss_tk.Suatk(); if (dtb_sk.Rows.Count == 0) clss_saoke.themsk(); else clss_saoke.Suask(); scope.Complete(); }
Theo như mình biết thì sql sẽ tự rollback lại khi 1 hàm trong những dòng trên của mình bị lỗi.
Ko hiểu sao Khi mình chạy thử thì khi 1 cái bị lỗi những cái khác vẫn lưu vào SQL, nó ko tự RollBack đc.
Ai chỉ mình lỗi chỗ nào với !!! hichic
Bác thay vào thế này: using (TransactionScope scope= new TransactionScope(TransactionScopeOption.Suppress))
K hiểu sao bài liên quan cái này liên tục bị mod del.
Mà h vẫn k dc hả? Vậy gửi cả code lên đi.
Vẫn ko đc...hic.
Mình thử cho 1 cái bị lỗi thì nó ko chạy nữa , mình tắt và qua coi bên sql thì nó vẫn nhập vào!!! hichicCode:using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress)) { clss_gd.themtknop(); clss_pnop.thempnop(); clss_tk.Suatk(); if (dtb_sk.Rows.Count == 0) clss_saoke.themsk(); else clss_saoke.Suask(); scope.Complete(); }
Có cần phải mỗi lần gọi lại 1 hàm là phải tạo một biết connect mới ko ta???
Nghe khoai nhỉ-dùng TransactionScopeOption.RequiresNew xem thế nào?
Dùng cái này nè
Visual C# Code:
//Tạo đối tượng connection connect.Open(); SqlTransaction transaction; transaction = connect.BeginTransaction(); { // Thực hiện lệnh transaction.Commit(); // Approve lên DB nếu tất cả thành công } { // Lỗi xảy ra, thì rollback những cái đã đăng ký lên DB transaction.Rollback(); } { { // Đóng kết nối connect.Close(); } }
Tại vì bạn không có set transaction vao từng câu lệnh cho nên nó mới không được.
Visual C# Code:
//Tạo đối tượng connection connect.Open(); SqlTransaction transaction; transaction = connect.BeginTransaction(); { cmd1.ExecuteNonQuery(); cmd2.ExecuteNonQuery(); // ... // Thực hiện lệnh transaction.Commit(); // Approve lên DB nếu tất cả thành công } { // Lỗi xảy ra, thì rollback những cái đã đăng ký lên DB transaction.Rollback(); } { { // Đóng kết nối connect.Close(); } }