Có ba trường hợp có thể xảy ra cho một phụ trang như vậy:
- Chèn thành công.
- Bạn có một ngoại lệ.
- Bạn có một trình kích hoạt có thể thay thế chèn bằng một số thao tác khác.
Tôi đoán rằng bạn không có trình kích hoạt và vì bạn không nhận được bản ghi trong bảng, nên phải có một ngoại lệ.
Bạn có bất kỳ mã nào bắt được ngoại lệ ở bất kỳ cấp nào khác không? Điều đó sẽ giải thích tại sao bạn không nhìn thấy nó và nó cũng sẽ khiến kết nối cơ sở dữ liệu không được tiết lộ, điều này sẽ giải thích tại sao bạn gặp sự cố khi kết nối với cơ sở dữ liệu sau đó.
Sử dụng using
khối cho kết nối cơ sở dữ liệu sẽ đóng nó đúng cách ngay cả khi có lỗi trong mã.
Bạn đang sử dụng truy vấn được tham số hóa, nhưng tôi không thể thấy rằng bạn thêm các tham số vào đối tượng lệnh ở bất kỳ vị trí nào trong mã. Đó sẽ là một cái gì đó giống như:
cmd.Parameters.Add("Price", SqlDbType.Decimal).Value = price;
cmd.Parameters.Add("User", SqlDbType.NChar, 20).Value = user;
cmd.Parameters.Add("Time", SqlDbType.NChar, 15).Value = time;
cmd.Parameters.Add("Customer", SqlDbType.NChar, 10).Value = customer;
cmd.Parameters.Add("Discount", SqlDbType.Decimal).Value = discount;
cmd.Parameters.Add("FullPrice", SqlDbType.Decimal).Value = fullPrice;