Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 16 kết quả

Đề tài: Lấy dữ liệu trong Database bằng nhiều checkbox thông qua câu lệnh SQL

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    10

    Smile Lấy dữ liệu trong Database bằng nhiều checkbox thông qua câu lệnh SQL

    Mình có 1 vấn đề thắc mắc là mình muốn làm 1 kiểu tìm kiếm với checkbox để lấy ra dữ liệu khi mình tích chọn vào 1 checkbox nào đó.
    VD database của mình có 1 bảng là SIM có 2 cột là MSoSIM và KieuSIM(TamHoa,Taxi,ThanTai,Sokep,SoLap)
    mình có 5 cái checkbox tương ứng với 5 cái kiểu sim kia.
    Vậy trường hợp mình muốn chọn những sim có kiểu TamHoa (tích chọn 1 checkbox )thì câu lệnh SQL sẽ như nào, còn trường hợp chon những sim có kiểu tamhoa và ThanTai(tích chọn 2 checkbox hoặc nhiều hơn) thì câu lệnh sql để lấy dữ liệu từ database sẽ ra sao, và code sự kiện như thế nào nếu dùng 1 button Tìm Kiếm!
    Ý tưởng của mình là dùng thuộc tính Checked của checkbox, nếu = true thì sẽ khai báo 1 câu lệnh SQL. Nhưng mà nếu chọn 3 checkbox bất kìa hoặc 4 checkbox bất kì thì nếu if như thế phải dùng bao nhiêu cái if mới đủ nếu số lượng checkbox nhiều. Bạn nào có cách hay thì giúp mình nha
    Mong các bạn sẽ giúp mình sớm ^^

  2. #2
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Nếu bạn chăm chỉ thì ngồi tính hết các trường hợp rồi mỗi cái viết một cái câu SQL.hihi. Đó là cách dễ nhất. Còn nếu bạn muốn ngắn gọn thì theo tớ nên xử bằng SQL. C# chỉ dùng để lấy giá trị ở Form.Theo t thì bạn sử dụng Like '%'+@value+'%' của SQL. Khi ấy: câu sql là:
    select ... from tbl_test
    where field1 like '%'+@f1+'%'
    and field2 like '%'+@f2+'%'
    and .....
    nếu không có checkbox nào checked => @f1=@f2=..="" (rỗng) câu truy vấn vẫn chạy bt. Khi có cái nào được check thì @f của nó # null, những cái khác dạng like '%%' cũng ko sao.
    Bạn thử kiểu đó xem ổn ko. T chưa thử với bài của bạn nên ko chắc chắn đc. hy vọng giúp dc bạn.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  3. #3
    Ngày gia nhập
    09 2011
    Bài viết
    10

    Trích dẫn Nguyên bản được gửi bởi mrfour.it Xem bài viết
    Nếu bạn chăm chỉ thì ngồi tính hết các trường hợp rồi mỗi cái viết một cái câu SQL.hihi. Đó là cách dễ nhất. Còn nếu bạn muốn ngắn gọn thì theo tớ nên xử bằng SQL. C# chỉ dùng để lấy giá trị ở Form.Theo t thì bạn sử dụng Like '%'+@value+'%' của SQL. Khi ấy: câu sql là:
    select ... from tbl_test
    where field1 like '%'+@f1+'%'
    and field2 like '%'+@f2+'%'
    and .....
    nếu không có checkbox nào checked => @f1=@f2=..="" (rỗng) câu truy vấn vẫn chạy bt. Khi có cái nào được check thì @f của nó # null, những cái khác dạng like '%%' cũng ko sao.
    Bạn thử kiểu đó xem ổn ko. T chưa thử với bài của bạn nên ko chắc chắn đc. hy vọng giúp dc bạn.
    Bạn có thể giải thích rõ hơn câu lệnh SQL của bạn không
    field1, fielld2 là gì vậy. cấu trúc sau like là gì. Bạn ví dụ cụ thể vào mấy cái checkbox của mình đc k. @@

  4. #4
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    hi. Đọc kỹ lại thì của bạn chỉ lấy 1 trường chứ ko phải nhiều trường.sorry vì đọc hơi ẩu. Bạn chơi kiểu:
    where kieuSim=@f1 or ..=@f2 la dc. Khi cái nào được check thì gán giá trị tương ứng, ko check thì để ="". ví dụ: tam hoa được check thì @fTamHoa='tamhoa', ko được check thì @fTamHoa=''.
    Đã được chỉnh sửa lần cuối bởi mrfour.it : 19-02-2012 lúc 12:09 AM.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    10

    Theo mình hiểu là thế này:
    Ví dụ cái checkbox sim TamHoa là cbTamHoa nhé
    xét cbTamHoa.Checked==true thì cái @f1 = 'TamHoa'
    ngược lại check ==false thì cái @f1= null à hay = kí tự trống ???
    Đúng chưa nhỉ @@

  6. #6
    Ngày gia nhập
    09 2011
    Bài viết
    10

    Smile Lấy dữ liệu trong Database bằng nhiều checkbox thông qua câu lệnh SQL

    Khoan bạn ơi, ví dụ trong cái database của mình ấy có SIM không thuộc kiểu nào trong 5 loại SIM kia thì select khi mà 1 checkbox k dc check nó lại lấy ra thằng đó thì chết à @@. Vụ này thì nên tính sao nhỉ

  7. #7
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Trích dẫn Nguyên bản được gửi bởi spacy0212 Xem bài viết
    Theo mình hiểu là thế này:
    Ví dụ cái checkbox sim TamHoa là cbTamHoa nhé
    xét cbTamHoa.Checked==true thì cái @f1 = 'TamHoa'
    ngược lại check ==false thì cái @f1= null à hay = kí tự trống ???
    Đúng chưa nhỉ @@
    xài kí tự trống.hix. bạn ko chọn gì thì ko có kết quả nào thui. muốn chơi kiểu ko chọn gì thì lấy những tên khác thì viết câu sql khác là dc.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  8. #8
    Ngày gia nhập
    09 2011
    Bài viết
    10

    Ví dụ nhé, cái bảng của mình có 1 sim không thuộc 5 kiểu kia
    Mình xét khi không có cái checkbox nào đc check thì cho tất cả 5 biến lần lượt = "tamhoa",....
    cÂU LỆNh SQL của mình sẽ thay dấu = thành dấu khác, với OR thành AND.
    Tuy nhiên lại không thể lấy ra cái sim kia là thế nào nhỉ zz
    Kíu mình với
    Đã được chỉnh sửa lần cuối bởi spacy0212 : 19-02-2012 lúc 02:51 PM.

  9. #9
    Ngày gia nhập
    10 2010
    Bài viết
    177

    Cậu có thể dùng List<Kiểu dữ liệu> để lưu lại giá trị của checkbox. Cứ mỗi lần check như vậy thì cái Text của mỗi checkbox sẽ được add vào List<>. Sau đó cậu dùng vòng lặp để duyệt qua. Cứ mỗi lần lặp như vậy cậu sẽ có được các giá trị trong List. Từ đó cậu có thể truy vấn theo điều kiện tương ứng.

  10. #10
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Hix. Nếu thế dùng <>( khác) kết hợp với and là đúng mà. bạn làm kiểu gì lại ko ra?
    ví dụ:
    SELECT [Leave_ID]
    ,[Emp_ID]
    FROM [tbl_Leave]
    where [Leave_Description]<> N'nghỉ tết' and [Leave_Description]<> N'nghỉ đẻ'
    thì lấy ra những bản ghi khác 2 dk kia. nếu chưa được bạn post đoạn sql của bạn coi?
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

Các đề tài tương tự

  1. chọn nhiều checkbox trong datagridview nhưng chỉ xóa được 1 dòng.
    Gửi bởi seven trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 14
    Bài viết cuối: 07-09-2013, 09:42 AM
  2. Chọn nhiều Checkbox trong girdcontrol
    Gửi bởi ghost_vn trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 11-03-2013, 04:31 PM
  3. Viết hàm trả về nhiều dạng control (textbox,checkbox) trong C# thế nào?
    Gửi bởi khanhduy.8hpm trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 11
    Bài viết cuối: 08-06-2012, 04:41 PM
  4. Xóa nhiều bản ghi với GridView và Checkbox trong ASP.NET
    Gửi bởi huynhthoaianh trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 13
    Bài viết cuối: 05-04-2011, 03:24 PM
  5. Xử lí sự kiện cho nhiều CheckBox cùng lúc trong lập trình C#?
    Gửi bởi hpc4th1 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 09-11-2010, 08:29 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn