【发布时间】:2021-08-07 04:39:53
【问题描述】:
大家晚上好,
我正在使用远程 MySQL 数据库在 vb.net 中开发 Windows 窗体应用程序。我已经从数据库中填充了一个带有名称的组合框。我想要做的是使用组合框作为导航器。当用户从组合框中选择一个名称时,它应该导航到匹配的记录。
我已使用以下代码成功填充组合框:
Public Sub populateSelector(sender As Object, e As EventArgs)
Dim dbConn As New MySqlConnection(My.Settings.mydbConnStr)
dbConn.Open()
Dim sqlCboPop As String = "SELECT fldLastName, fldID FROM tblData WHERE fldLocation = '" & CurrentUserRecordSet & "'"
Dim daCboPop As New MySqlDataAdapter(sqlCboPop, dbConn)
Dim dsCboPop As New DataSet
daCboPop.Fill(dsCboPop, "tblData")
With tsbCboSelect.ComboBox
.DataSource = dsCboPop.Tables("tblData")
.DisplayMember = "fldLastName"
.ValueMember = "fldID"
End With
End Sub
这部分^^^工作正常。
但是,我已经到了互联网的尽头,并试图弄清楚如何根据组合框在数据集中选择一条记录。在以前的项目中,我能够在 Access vba 中成功执行此操作,但无法使其在 Vb.Net 中工作。任何帮助将不胜感激。
- M
【问题讨论】:
-
您应该在
DataSource之前设置DisplayMember和ValueMember。 -
你为什么要声明参数 sender 和 e 而你从不在 sub 中使用它们?
-
你为什么要打开连接。 DataAdapter 将打开并关闭连接,如果它关闭,但如果它是打开的,它会保持打开状态。
-
什么是 CurrentUserRecordSet?不要连接字符串来构建 sql 语句。始终使用参数。
-
为什么还要使用 DataAdapters 和 DatasSets?它们在有用之前就超出了范围。