Как заполнить ComboBox на основе другого ComboBox, используя строку подключения (SQL Server, VB.NET)
Когда пользователь выбирает клиента из выпадающего списка 1 (компания, с которой мы работаем и являемся партнерами), он должен заполнять пользователей из выпадающего списка 2 только для этого клиента, который должен поступать из этой конкретной базы данных в SQL Server.
Пример:
Первый комбинированный список со всеми клиентами, когда пользователь выбирает клиента, и второй комбинированный список со всеми пользователями только из этой базы данных, я хочу, чтобы список пользователей второго комбинированного списка изменялся в соответствии с клиентами, выбранными из списка первого комбинированного списка. но включая строку подключения, через SQL Server.
Так что, если я выберу сказать, скажем .... Google в Combobox 1 и в Combobox 2, я ожидаю, скажем ..... 10 пользователей из Google. Но если я передумаю и выберу Yahoo в Combobox 1 и Combobox 2, я ожидаю сказать… на этот раз около 12 пользователей из Yahoo.
Имя базы данных, которое я использую:MyDatabase
Получить пользователей из этих баз данных на основе сделанного мной выбора, который содержит тех конкретных пользователей, а не MyDatabase, у которого также есть пользователи:
GoogleQA (если пользователь выбрал Google, получите пользователей только из этой базы данных и заполните ее во время выполнения)YahooQA (если пользователь выбрал Yahoo, получите пользователей только из этой базы данных и заполните ее во время выполнения)Мой код VB.Net:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("conStr").ConnectionString)
Dim cmd As New SqlCommand("Select * from CLIENTS", con)
con.Open()
Dim dt As New DataTable
dt.Load(cmd.ExecuteReader())
con.Close()
cboClient.DataSource = dt
cboClient.DisplayMember = "CLIENT_NAME"
cboClient.ValueMember = "ID"
rtfMessage.Tag = "Enter your message here"
rtfMessage.Text = CStr(rtfMessage.Tag)
Что я могу добавить в свой код со списком, чтобы получить конечную цель того, чего я хочу добиться:
Private Sub cboUser_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboUser.SelectedValueChanged
--What do I put here?
End Sub
Private Sub cboClient_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboClient.SelectedIndexChanged
Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("conStr2").ConnectionString)
Dim cmd As New SqlCommand("Select * from USERS", con)
con.Open()
Dim dt As New DataTable
dt.Load(cmd.ExecuteReader())
con.Close()
cboClient.DataSource = dt
cboClient.DisplayMember = "NetworkID"
cboClient.ValueMember = "ID"
cboClient.Text = ""
If cboClient.SelectedItem.Text = "Sunoco" Then
cboUser.Items.Add("NetworkID")
End If
End Sub
Возможность: на клиенте изменить функцию поля со списком (cboClient_SelectedValueChanged)
1.) Change the database connection
2.) Query the proper user data from the correct database
3.) populate the user combo box with that user data