Xử lý trigger trong code c# winform

Hi mn!
Mn cho mình hỏi mình viết trigger bên sql rồi và muốn xử lý (các trigger có roll transaction và thông báo lỗi) bên phần code phần mềm (c# winform) thì làm như thế nào ạ? Mình có search bằng cả tiếng anh lẫn tiếng việt mà mãi không tìm nổi, mong mn biết thì giúp mình với ạ, cảm ơn mn đã đọc bài viết ạ!!!

Cậu có thể nói rõ hơn được không Đạt?

  • Cậu muốn viết trigger trên sự kiện gì?
  • Nhiệm vụ của trigger mà cậu muốn đạt được là gì?
2 Likes


ví dụ tớ kiểm tra nếu khi nhập chi phiếu thuê, nhân viên nhập số lượng khách > số lượng khách cho phép của phòng chọn và giờ trong code của tớ sẽ phải làm ntn để hiện được lỗi này mà k bị ended by trigger

Oh, tớ nghĩ cậu nên để logic đó vào trong application, chứ đừng để ở trigger.
Rule of thumb: Logic luôn để ở trong application, đừng phân tán nó ra như cách cậu đang làm.
Vì như vậy sẽ:

  • Tránh được việc phân tán business logic ở khắp nơi. Cậu sẽ không maintain nổi 1 application nếu như logic của nó tung toé khắp database đâu :smiley:
  • Làm đơn giản hoá những thao tác phức tạp khi xử lý 1 vấn đề bằng 1 công cụ không phù hợp. Cậu hoàn toàn có thể xử lý logic kiểm tra số người thuê nhiều hơn sức chứa phòng trong application một cách dễ dàng.
  • Performance của DB tốt hơn. Giờ cứ mỗi khi insert/update, 1 chương trình nào đó tốn resource DB của cậu, trong khi nó đáng ra chỉ quan tâm tới việc đọc/ghi/xoá dữ liệu.

Vấn đề của cậu là kiểm tra xem nếu số lượng khách thuê nhiều hơn sức chứa của phòng, chứ không phải là viết trigger để đưa thông điệp lỗi sang application và rollback transaction.

2 Likes

ừm cậu, thực ra xử lý trong application thì quá dễ dàng, chỉ là môn này là môn thực tập cơ sở dữ liệu, cô bảo muốn 9 10 điểm thì phải làm trigger ấy cậu. Vậy nếu giờ vừa kết hợp trigger đó và bắt lỗi bên application được không cậu? Hay mình cứ làm trigger để cô nhìn thôi, không chạy nó =))

Thử xem:

4 Likes

Just following up, cậu thử cách của SITUVN chưa? Nó có chạy như mong muốn không cậu? :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?