从 SQLTable 到列表框的 ItemName 及其到文本框的值
ItemName to Listbox from SQLTable and its value to textboxes
我想将 ItemName 从 sql table 加载到 Listbox
并获取 ItemId、ItemName 和 Details 值到文本框。
到目前为止,我每次打开或加载 window 时都会收到此代码,它会在列表框中显示 itemName。哪个好
Dim cmd As New SqlCommand("select * FROM Items")
cmd.Connection = connection
Dim adp As New SqlDataAdapter(cmd)
Dim dt As New DataTable()
adp.Fill(dt)
ListBox1.DataSource = dt
ListBox1.DisplayMember = "ItemName"
但问题是:
如果我单击列表框中的一项,它会自动在 sql table 的文本框中显示 itemId、ItemName 和详细信息,我该怎么办?我需要协助。谢谢!
要将 ListBox
项目的选择与 TextBox
同步,请使用 BindingSource
。当您将 DataBindings
添加到 TextBox
时,您将传递要绑定到的 属性 的名称、BindingSource
变量和 DataMember
(列名)你想绑定。
大多数数据库对象都需要释放。 Connection
和 Command
有 Dispose
个方法需要调用。幸运的是 vb.net 提供了 Using...End Using
块来为我们处理这个问题。这也将关闭连接。连接应该在使用它们的方法中用 Using
块声明,以便它们可以被释放。
您不需要 DataAdapter
。只需使用 DataReader
并加载 DataTable
.
您可以将连接字符串直接传递给连接的构造函数。您还可以将 CommandText
和 Connection
传递给 Command
.
的构造函数
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt = GetDataFromSql()
Dim BndSrc As New BindingSource()
BndSrc.DataSource = dt
ListBox1.DisplayMember = "ItemName"
ListBox1.DataSource = BndSrc
TextBox1.DataBindings.Add("Text", BndSrc, "ItemID")
TextBox2.DataBindings.Add("Text", BndSrc, "ItemName")
TextBox3.DataBindings.Add("Text", BndSrc, "Details")
End Sub
Private Function GetDataFromSql() As DataTable
Dim dt As New DataTable
Using connection As New SqlConnection("Your connection string"),
cmd As New SqlCommand("select * FROM Items", connection)
connection.Open()
Using reader = cmd.ExecuteReader
dt.Load(reader)
End Using
End Using
Return dt
End Function
Private Sub Form3_Load(sender As Object, e As EventArgs) 句柄 MyBase.Load
con = New SqlConnection("ConnectionString")
con.Open()
cmd = New SqlCommand("select * from [dbo].[Item_Details]", con)
rdr = cmd.ExecuteReader()
While rdr.Read
ListBox1.Items.Add(rdr(1))
End While
con.Close()
End Sub
Private Sub ListBox1_MouseClick(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseClick
Try
con = New SqlConnection("ConnectionString")
con.Open()
da = New SqlDataAdapter("Select * from Item_Details where itemname='" & ListBox1.SelectedItem.ToString() & "'", con)
Dim dt As New DataTable
da.Fill(dt)
For Each row As DataRow In dt.Rows
TextBox1.Text = row(0).ToString()
TextBox2.Text = row(1).ToString()
TextBox3.Text = row(2).ToString()
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
我想将 ItemName 从 sql table 加载到 Listbox 并获取 ItemId、ItemName 和 Details 值到文本框。
到目前为止,我每次打开或加载 window 时都会收到此代码,它会在列表框中显示 itemName。哪个好
Dim cmd As New SqlCommand("select * FROM Items")
cmd.Connection = connection
Dim adp As New SqlDataAdapter(cmd)
Dim dt As New DataTable()
adp.Fill(dt)
ListBox1.DataSource = dt
ListBox1.DisplayMember = "ItemName"
但问题是: 如果我单击列表框中的一项,它会自动在 sql table 的文本框中显示 itemId、ItemName 和详细信息,我该怎么办?我需要协助。谢谢!
要将 ListBox
项目的选择与 TextBox
同步,请使用 BindingSource
。当您将 DataBindings
添加到 TextBox
时,您将传递要绑定到的 属性 的名称、BindingSource
变量和 DataMember
(列名)你想绑定。
大多数数据库对象都需要释放。 Connection
和 Command
有 Dispose
个方法需要调用。幸运的是 vb.net 提供了 Using...End Using
块来为我们处理这个问题。这也将关闭连接。连接应该在使用它们的方法中用 Using
块声明,以便它们可以被释放。
您不需要 DataAdapter
。只需使用 DataReader
并加载 DataTable
.
您可以将连接字符串直接传递给连接的构造函数。您还可以将 CommandText
和 Connection
传递给 Command
.
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt = GetDataFromSql()
Dim BndSrc As New BindingSource()
BndSrc.DataSource = dt
ListBox1.DisplayMember = "ItemName"
ListBox1.DataSource = BndSrc
TextBox1.DataBindings.Add("Text", BndSrc, "ItemID")
TextBox2.DataBindings.Add("Text", BndSrc, "ItemName")
TextBox3.DataBindings.Add("Text", BndSrc, "Details")
End Sub
Private Function GetDataFromSql() As DataTable
Dim dt As New DataTable
Using connection As New SqlConnection("Your connection string"),
cmd As New SqlCommand("select * FROM Items", connection)
connection.Open()
Using reader = cmd.ExecuteReader
dt.Load(reader)
End Using
End Using
Return dt
End Function
Private Sub Form3_Load(sender As Object, e As EventArgs) 句柄 MyBase.Load
con = New SqlConnection("ConnectionString")
con.Open()
cmd = New SqlCommand("select * from [dbo].[Item_Details]", con)
rdr = cmd.ExecuteReader()
While rdr.Read
ListBox1.Items.Add(rdr(1))
End While
con.Close()
End Sub
Private Sub ListBox1_MouseClick(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseClick
Try
con = New SqlConnection("ConnectionString")
con.Open()
da = New SqlDataAdapter("Select * from Item_Details where itemname='" & ListBox1.SelectedItem.ToString() & "'", con)
Dim dt As New DataTable
da.Fill(dt)
For Each row As DataRow In dt.Rows
TextBox1.Text = row(0).ToString()
TextBox2.Text = row(1).ToString()
TextBox3.Text = row(2).ToString()
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub