Skúšal som to pomocou Datasetu, TableAdapteru a Databinding, ale keď som naplnil druhý ComboBox, tak sa zmenili položky v prvom. Tak som to skúsil inak. Okresaný program:
Imports System.Data.SqlClient
Public Class Form1
Dim connStr As String = System.Configuration.ConfigurationManager.ConnectionStrings("dbDatabase1").ConnectionString
Dim sqlConnection As New SqlClient.SqlConnection(connStr)
Dim sqlCommand1 As New SqlCommand("SELECT [ItemTbl1] FROM [Table1]", sqlConnection) ' vytvoření dotazu a předání připojení
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sqlConnection.Open()
Dim dataReader1 As SqlDataReader = sqlCommand1.ExecuteReader()
Do While dataReader1.Read ' posun na další řádky, dokud jsou k dispozici
ComboBox1.Items.Add(String.Format("{0}", dataReader1("ItemTbl1")))
Loop
dataReader1.Close()
sqlConnection.Close()
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
ComboBox2.Items.Clear()
ComboBox2.Text = ""
Dim sqlCommand2 As New SqlCommand("SELECT [ItemTbl2] FROM [Table2] WHERE [ItemTbl1]=@ItemTbl1", sqlConnection) ' vytvoření dotazu a předání připojení
sqlCommand2.Parameters.AddWithValue("@ItemTbl1", ComboBox1.Text()) ' přidat parametr do dotazu
sqlConnection.Open()
Dim dataReader2 As SqlDataReader = sqlCommand2.ExecuteReader()
Do While dataReader2.Read ' posun na další řádky, dokud jsou k dispozici
ComboBox2.Items.Add(String.Format("{0}", dataReader2("ItemTbl2")))
Loop
dataReader2.Close()
sqlConnection.Close()
End Sub
End Class
Je potrebné pridať System.Configuration cez ad reference Zdroje: http://www.vbnet.cz/clanek--52-komunikac... http://www.vbnet.cz/blog-clanek--249-net... http://www.vbnet.cz/snippet--50-zobrazen... Ešte app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="dbDatabase1"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
|