Получить данные из базы данных в соответствии с несколькими отмеченными элементами из CheckedListBox

Как получить данные из базы данных по нескольким отмеченным элементам из CheckedListBox? ПОЖАЛУЙСТА, ПОМОГИТЕ МНЕ!!!

В настоящее время я делаю учебник по извлечению данных из таблицы в соответствии с несколькими отмеченными элементами из CheckedListBox. Прямо сейчас я могу получить данные из таблицы только по 1 проверенному элементу. как сделать его извлекаемым по множеству проверенных элементов?

  1. контрольный список1
  2. контрольный список2

Учебное пособие будет следующим: сначала загрузите все связанные данные в контрольный список1 в качестве элемента, и пользователи могут перейти и проверить перечисленный элемент, как только пользователь проверит подробные сведения, контрольный список2 теперь будет запрашивать данные из другой таблицы, где [поле] = проверенные элементы из контрольного списка1.

загрузить событие как класс

Public Sub Startload()
        Dim connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & aaa & "';Persist Security Info=False;")
        Dim dt1 As New DataTable
        Dim sqlstr As String = "SELECT * FROM tbl"
        Dim command As New OleDbCommand(sqlstr, connection)
        Dim adpt As New OleDbDataAdapter(command)

        adpt.SelectCommand = command
        adpt.Fill(dt1)
        CheckedListBox1.DisplayMember = "name"
        CheckedListBox1.ValueMember = "ID"
        CheckedListBox1.DataSource = dt1
    End Sub

при проверенном изменении выполнить checkload()

 Private Sub CheckedListBox1_ItemCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck
        Label1.Text = CheckedListBox1.SelectedValue
        checkedload()
    End Sub

После того, как отмеченные элементы из контрольного списка1 (checkedload) будут выполняться, извлекать данные и отображаться в контрольном списке2

Private Sub checkedload()
        Dim x As String = Label1.Text
        Dim connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & aaa & "';Persist Security Info=False;")
        Dim dt2 As New DataTable
        Dim sqlstr2 As String = "SELECT * FROM tbl2 WHERE [name]='" & x & "'"
        Dim command2 As New OleDbCommand(sqlstr2, connection)
        Dim adpt2 As New OleDbDataAdapter(command2)

        adpt2.SelectCommand = command2
        adpt2.Fill(dt2)
        CheckedListBox2.DisplayMember = "namex"
        CheckedListBox2.ValueMember = "ID"
        CheckedListBox2.DataSource = dt2
    End Sub

person 廖伟 Donald    schedule 03.04.2014    source источник
comment
он извлекает значения из базы данных   -  person King of kings    schedule 03.04.2014


Ответы (2)


Решение самостоятельно

Dim i As Integer
        Dim connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & aaa & "';Persist Security Info=False;")
        Dim dt2 As New DataTable
        For i = 0 To CheckedListBox1.Items.Count - 1 Step i + 1
            If CheckedListBox1.GetItemCheckState(i) = CheckState.Checked Then
                Dim xx As String = (CType(CheckedListBox1.Items(i), DataRowView))("name")
                Dim sqlstr2 As String = "SELECT * FROM tbl2 WHERE [name]='" & xx & "'"
                Dim command2 As New OleDbCommand(sqlstr2, connection)
                Dim adpt2 As New OleDbDataAdapter(command2)
                adpt2.SelectCommand = command2
                adpt2.Fill(dt2)
                CheckedListBox2.DisplayMember = "namex"
                CheckedListBox2.ValueMember = "ID"
                CheckedListBox2.DataSource = dt2
            End If
        Next
person 廖伟 Donald    schedule 04.04.2014

Private Sub CheckedListBox1_ItemCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck
 Dim i as Integer=0
 For Each li as ListItem in CheckedListBox1.Items
      If li.Selected=True Then
         Dim lab As New Label
         lab.ID="lab" & i
         lab.Text=li.SelectedItem.Value
         i += 1
      End If
 Next
 hiddenfield1.Value=i    'hidden field 
 checkedload()
End Sub

Private Sub checkedload()
  For i as Integer = o To hiddenField1.Value 
    Dim x As String = Request.Form("lab" & i)
    Dim connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & aaa & "';Persist Security Info=False;")
    Dim dt2 As New DataTable
    Dim sqlstr2 As String = "SELECT * FROM tbl2 WHERE [name]='" & x & "'"
    Dim command2 As New OleDbCommand(sqlstr2, connection)
    Dim adpt2 As New OleDbDataAdapter(command2)

    adpt2.SelectCommand = command2
    adpt2.Fill(dt2)
    CheckedListBox2.DisplayMember = "namex"
    CheckedListBox2.ValueMember = "ID"
    CheckedListBox2.DataSource = dt2
  Next
End Sub

Я так и не проверил. но это может помочь вам

person King of kings    schedule 03.04.2014
comment
эм, спасибо за руководство, но не понимаю с ним (hiddenField1.value)? - person 廖伟 Donald; 03.04.2014
comment
скрытое поле для количества элементов, которые вы проверили - person King of kings; 03.04.2014
comment
For Each li as ListItem in CheckedListBox1.Items If li.Selected=True Then Dim lab As New Label lab.ID="lab" & i lab.Text=li.SelectedItem.Value i += 1 End If Next ' ListItem и lab.ID=lab & i произошла ошибка!!! - person 廖伟 Donald; 04.04.2014