Tìm kiếm bằng 3 combobox

Chào mọi người.
Em đang làm bài tập form tìm kiếm/lọc.
Giờ em load dữ liệu lên gridview xong. Từ các combobox chọn ra, sẽ hiển thị 1 hàng trên gridview theo yêu cầu từ combobox.

Như trong hình, em chọn xong trên combobox, nhấn “Đọc dữ liệu” nó sẽ hiện ra 1 dòng đầu tiên thôi.
Chỗ where trong câu lệnh sql, bắt sự kiện button click em viết thế này, mà không ra, help help :))
where ls.Tenloaisach= ‘"+cbbLoaiSach.SelectedItem.ToString() + “and dc.Quydinhdocu= '”+ cbbDoCu.SelectedItem.ToString() + "and st.Quydinhsotrang=’" +cbbSoTrang.SelectedItem.ToString()+"’";

Bạn viết code ko rõ ràng, khó mà tư vấn được, bạn có thể chụp ảnh, hoặc đưa vào thẻ code cả hàm bắt sự kiện click button Đọc dữ liệu được chứ?

Đây nè, xem giúp bạn ^^

Thỏa mãn cả 3 điều kiện của bạn chỉ có 1 bản ghi là đúng rồi mà, đâu có sai đâu?
Nếu bạn nghi ngờ về số kết quả, thử đặt break point ở chỗ da.Fill(dt); xem nó trả về bao nhiêu kết quả?

Lỗi văng ra thế này :slight_smile:

Mình tưởng đang chạy tốt rồi mà sao lại có exception rồi :joy:. Vậy thì bạn debug đi, dùng Step Into (F11) để xem chính xác nó sai ở chỗ nào nhé.

cái mệnh đề where viết vậy đúng hok? mấy cái 1 nháy, 2 nháy hơi bị rối, ko rõ cho lắm. :slight_smile:

Khi bạn debug nó ko bảo lỗi ở đó thì ko sai, nhưng để cho ko bị rối như vậy, bạn nên viết như thế này:

var lstExportDB = db.Query<long>(_sqlQuery, new { nodeId = 73 }).ToList();
Trong đó _sqlQuery là câu lệnh SQL như sau:
select POST_ID from NODE_WORK_CHECK where NODE_WORK_ID=@nodeId and CHECK_STATUS=1

Mình dùng nodeId làm biến thay cho mấy cái nháy nháy của bạn và được truyền vào như lệnh trên, bạn sẽ thấy rõ ràng hơn.

Ý của chủ thớt là select ra 1 bản ghi thôi chứ ko nhiều bản ghi như kia ah

Mấy cái này em làm tuần tự như vầy sẽ không mắc lỗi nữa:

  1. Khi gặp một xử lý khó em cần test câu truy vấn trực tiếp lên csdl trước chạy được đúng ý rồi tính.
  2. Copy câu truy vấn ra.
  3. Truyền các tham số vào câu truy vấn đó xong.
  4. Phát sinh lỗi là do truyền vào sai kiểu, sai câu - cứu pháp truy vấn.

hì, thanks a, mà câu truy vấn của em có chút vấn đề. ví dụ như nếu where tensach =‘Kinh Doanh’ thì nó ra 1 hàng. Mà nếu em where tensach =’ Sách Giáo Khoa’ nó lại hok ra. Có phải truy vấn phân biệt chữ có dấu và không dấu ko?

select tìm kiếm ra 1 hàng theo data trong combobox thôi! :slight_smile:

Em thử sửa câu query đi: SELECT TOP 1 a.cot1, a.cot2 FROM …
nó sẽ lấy ra chỉ 1 bản ghi đầu tiên từ top xuống

Em thử where tensach = N’Sách Giáo Khoa’ Xem ra ko, tiếng việt thêm N vào trc thì phải :smiley:

hehe…cám ơn nhé. thiếu chữ N để tìm ra tiếng việt, và combobox.text nó mới ra. Cứ xài cbb.selectedItem.Tostring() nó ko ra :slight_smile:
Bây giờ OK rồi.
Thanks all.

1 Like

:joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy:
Có gì ko hiểu cứ inbox a

hì em sắp ra trường rồi :slight_smile:

a thì mới bỏ việc :))

hehe…em thì đang tìm việc. Lương tester mới ra trường chưa có kinh nghiệm, nếu làm ở công ty Việt Nam thì lương cỡ bao nhiêu là ok a :slight_smile:

Cho mình xin code được không bạn , [email protected]

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