Zdravím, řeším něco na způsob multi Comboboxu. V MS Accessu 2000 atd. je combobox, ve kterém mohu zobrazit více sloupců. Bohužel ve VB.NET ComboBox nabízí pouze dva sloupce ValueMember a DisplayMember. V Accesu jsem totiž do ComboBoxu načetl např. 10 záznamů, který měl 3 sloupce a pak jsem při výběru záznamu z ComboBoxu mohl z těch tří sloupců ty data použít. Viz. Hodnota1 = Me.ComboBox.column(0) Hodnota2 = Me.ComboBox.column(1) Hodnota3 = Me.ComboBox.column(3) Zajímalo by mě jak toho mám dosáhnou ve VB.NET. Napadá mě řešení, že když už mám načtené data v DataTeble, tak bych po události ComboBox1_TextChanged, nějakým způsobem provedl select v DataTable a tyto vybrané hodnoty předal do TextBoxu na formuláři. Ale nevím jak to realizovat, pomůženěkdo? Předem děkuji
Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class FRM_ComboBox
Public dt As New DataTable
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
‚ Provede se načtení dat z SQL serveru do DataTable, následně se data interpretují do ComboBoxu
Dim con As New SqlClient.SqlConnection
Dim cmd As New SqlClient.SqlCommand
Dim da As New SqlClient.SqlDataAdapter(cmd)
con.ConnectionString = "server=DOMACI;integrated Security=SSPI;DATABASE=Test;"
con.Open()
cmd.CommandText = "test_sel" ' Tabulka: ID, Popis1, Popis2, Popis3
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = con
da.Fill(dt)
With Me.ComboBox1
.DataSource = dt
.DisplayMember = "popis1"
.ValueMember = "ID"
End With
con.Close()
con = Nothing
End Sub
Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
‚ Událost ComboBoxu TextChanged
‚ a z Comboboxu bych zde zjistil ID číslo vybraného záznamu a následně bych nějakým způsobem vytáhnul řádek z DataTable, který odpovídá ID číslu, ale jak to udělat fakt netuším.
Me.ID.text = "ID číslo"
Me.t1.Text = "hodnota z pole1"
Me.t2.Text = "hodnota z pole2"
Me.t3.Text = "hodnota z pole3"
End Sub
End Class
|