Заполнение ComboBox из БД в зависимости от выбранного значения в другом ComboBox - Visual Basic .NET
Формулировка задачи:
Т.к. я не профессионал, прошу сразу не закидывать палками )) Проблема следующая, грубо говоря на форме преславутые зависимые ComboBox, первый заполняется при загрузке формы - был подключен не из кода, а визардом, второй должен заполняться в зависимости от выбора в первом следующим кодом:
Но этого не происходит, т.е. он к базе не может подключиться, на этот случай есть MessageBox.Show(ComboBox1.SelectedValue), подскажите в чем дело пожалуйста...
Листинг программы
- Dim connString As String
- Dim oledbCnn As OleDbConnection
- Dim oledbCmd As OleDbCommand
- Dim sql As String
- connString = ("Data Source=""E:\BD\Reglam.accdb"";user " & "id=Admin;Provider=""Microsoft.Jet.OLEDB.4.0"";")
- sql = "SELECT NAIM_SUBYEKT from SUBYEKTY WHERE NUMBER_FO=('" & ComboBox1.SelectedValue & "')"
- oledbCnn = New OleDbConnection(connString)
- Try
- oledbCnn.Open()
- oledbCmd = New OleDbCommand(sql, oledbCnn)
- Dim oledbReader As OleDbDataReader = oledbCmd.ExecuteReader()
- ComboBox2.Items.Clear()
- While oledbReader.Read
- ComboBox2.Items.Add(oledbReader.Item(1))
- End While
- oledbReader.Close()
- oledbCmd.Dispose()
- oledbCnn.Close()
- Catch ex As Exception
- MessageBox.Show(ComboBox1.SelectedValue)
- End Try
Решение задачи: «Заполнение ComboBox из БД в зависимости от выбранного значения в другом ComboBox»
textual
Листинг программы
- Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
- Dim oledbCnn As OleDbConnection
- Dim oledbCmd As OleDbCommand
- Dim sql As String
- sql = ("SELECT <то что нужно> from <таблица выборки> WHERE ValueMember =" & ComboBox2.SelectedValue)
- oledbCnn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\BD\Reglam.accdb;")
- Try
- oledbCnn.Open()
- oledbCmd = New OleDbCommand(sql, oledbCnn)
- oledbCmd.ExecuteNonQuery()
- oledbCnn.Close()
- Dim oledbDA As New OleDbDataAdapter(oledbCmd)
- Dim dt As New DataTable
- oledbDA.Fill(dt)
- ComboBox2.Items.Clear()
- For Each row As DataRow In dt.Rows
- ComboBox3.Items.Add(row.Item(0))
- Next
- Catch ex As Exception
- MsgBox(ex.ToString)
- 'MessageBox.Show(ComboBox1.SelectedValue)
- End Try
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д