Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Làm sao để lấy thông báo từ SQL lên Winform
00:43 28-05-2017
1.899 lượt xem
5 bình luận
04:33 12-06-2017
Create PROC usp_ThemKhachHang
@ten NVarchar(50),
@cmnd Int,
@sdt Varchar(50)
AS
DECLARE @i Int = 1
BEGIN
WHILE EXISTS(SELECT 1 FROM dbo.KHACHHANG WHERE MaKH = @i)
BEGIN
SET @i = @i + 1
END
IF EXISTS(SELECT 1 FROM dbo.KHACHHANG WHERE CMND = @cmnd)-- mo khach hang dung 1 chung minh nhan dan khac nhau
BEGIN
PRINT N'CMND đã được sử dụng!'
RETURN
END
BEGIN TRAN
SET IDENTITY_INSERT dbo.KHACHHANG ON
INSERT INTO dbo.KHACHHANG (MaKH, HoTen, CMND, SDT) VALUES (@i, @ten, @cmnd, @sdt)
COMMIT TRAN
IF @@ERROR<>0
BEGIN
ROLLBACK TRAN
END
END
Hiện tại em có 1 stored procedure như trên. Trong quá trình gọi thực hiện query thì bị dính phần CMND, chạy bên SQL thì hiện được dòng PRINT N'CMND đã được sử dụng!' , nhưng bên Winform, xử dụng provider như bài Quán cà phê, có cách nào lấy được dòng này để xuất lên thông báo không ạ?
Thử bắt sự kiện InfoMessage của connection xem.
Ví dụ:
Bạn tạo 1 hàm kiểm tra CMND có trùng không
+ Tạo 1 câu lệnh truy vấn:
+ Trong c# dùng câu lệnh excuteQuery( ) để chạy và gán vào 1 cái adapter
+ Dùng Apdapter để fill dữ liệu đó vào 1 datatable
+ Xong r kiểm tra . Nếu dataTable.Row = 0 có nghĩa là CMND chưa trùng . Nếu dataTable.Row = 1 có nghĩa là CMND trùng