Click here to Skip to main content
11,496,146 members (595 online)
The site is currently in read-only mode for maintenance. Posting of new items will be available again shortly.
See more: VB.NET
It can only filter one checked item. When I check two items, it only shows the first item that I check. Any idea on how the logic would be?

For item As Integer = 0 To CheckedListBox1.CheckedItems.Count - 1
            Dim sql = "select * from Status where Stat= '" & CheckedListBox1.CheckedItems(item) & "'"
            Dim dt As DataTable
            Dim ds As New DataSet
            cnn = New OleDbConnection(connectionString)
 
            Try
                cnn.Open()
                adptr = New OleDbDataAdapter(sql, cnn)
                adptr.Fill(ds)
                adptr.Dispose()
                cnn.Close()
 
                dt = ds.Tables(0)
                Form5.DataGridView1.DataSource = dt
 
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
            Form5.DataGridView1.Visible = True
        Next
Posted 22-Feb-13 3:45am
PBubble129

1 solution

You're only populating the DataGridView for individual checked items ... the contents of DataTable dt change each time you go around the loop.

You would be better off building up a list of the checked items first and using that list in a single sql statement e.g. ...
Dim statList As String = "("
For item As Integer = 0 To CheckedListBox1.CheckedItems.Count - 1
    statList += "'" & CheckedListBox1.CheckedItems(item) & "',"
Next
statList = statList.Substring(0, statList.Length - 1) + ")"
 
Dim sql = "select * from Status where Stat in " + statList
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 10,401
1 OriginalGriff 8,910
2 Sascha Lefèvre 3,899
3 Maciej Los 3,422
4 Richard Deeming 2,600


Advertise | Privacy | Mobile
Web01 | 2.8.150520.1 | Last Updated 22 Feb 2013
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100