Cần giúp đỡ bắt lỗi trùng PRIMARY KEY trong C# liên kết với SQL

Chào mọi người, em đang học mô hình 3 lớp trong c# liên kết với sql database. Nhưng không biết bắt lỗi khi bị trùng khóa chính như thế nào ?. Cụ thể, em muốn bắt lỗi khi có mã phòng ban trung nhau. Xin mọi người giúp đỡ, em cảm ơn.

Ý bạn là muốn insert dữ liệu của phòng ban, nếu mã phòng ban bị trùng với mã đã có trong database thì báo lỗi là không thêm được hay sao?

1 Like

Đúng vậy ạ. Nếu cùng ở Form_load thì em làm được, còn 3 lớp thì em không biết

Mô hình nào cũng thế.
Đều phải connect đến ĐB rồi xác minh xem nó có tồn tại chưa bằng vài cách.
Có thể là thử insert (không nên) hoặc select - where.

2 Likes

Mình vẫn chưa hiểu 3 lớp của bạn là nghĩa như thế nào, bạn có thể select mã phòng ban ra 1 mảng, vector… sau đó so sánh với giá trị mà bạn cần insert

1 Like

Nó giống với mô hình trong ảnh này ạ
image

Về cơ bản, cậu không thể insert vào DB nếu như dữ liệu mới bị trùng khóa chính với dữ liệu đã có trong DB. Cậu sẽ nhận được exception khi việc này xảy ra.
Tớ suggest cậu đọc doc của framework xử lý liên kết với DB mà cậu đang dùng, nó nên đề cập exception gì sẽ được tung ra. Cậu cần catch exception đó và kiểm tra mã lỗi trả về, và đưa ra xử lý thích hợp.
Ở mô hình 3 tiers mà cậu đang dùng, exception sẽ được tung ở data access layer, và ở tầng logic cậu sẽ catch và đưa ra xử lý phù hợp.

Hope it helps!

4 Likes

Vâng. Em cảm ơn anh nhiều

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