【发布时间】:2015-02-09 06:59:56
【问题描述】:
我的 MySql 数据库中有表:
- 材料
- 计量单位
我还有 2 个组合框:
- cmbHeader - 此组合框填充数据库内的表。
- cmbContent - 这个组合框应该填充从 cmbHeader 中选择的表格内的列
我能够使用以下代码在我的数据库中的表中填充 cmbHeader:
Dim conn As New MySqlConnection
Dim command As New MySqlCommand
Dim dt As New DataTable
conn.ConnectionString = "server=localhost;userid=root;password=NewPass;database=converter"
Try
conn.Open()
dt = conn.GetSchema("TABLES")
cmbHeader.DataSource = dt
cmbHeader.DisplayMember = "table_name"
cmbHeader.ValueMember = "table_name"
command.Dispose()
conn.Close()
Catch ex As Exception
End Try
现在对于 cmbContent,我的代码中出现错误。我使用此代码:
Private Sub cmbHeader_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbHeader.SelectedIndexChanged, cmbList.SelectedIndexChanged
Dim conn As New MySqlConnection
Dim command As New MySqlCommand
Dim dt As New DataTable
Dim reader As MySqlDataReader
conn.ConnectionString = "server=localhost;userid=root;password=NewPass;database=converter"
conn.Open()
Dim query As String
query = "SELECT * FROM '" & cmbHeader.SelectedItem & "'"
command = New MySqlCommand(query, conn)
reader = command.ExecuteReader
cmbList.Items.Clear()
While reader.Read
Dim header = reader.GetString("Header")
Dim content = reader.GetString("Content")
Dim convert = reader.GetString("Convert")
cmbList.Items.Add(content)
End While
command.Dispose()
reader.Close()
conn.Close()
End Sub
这是我使用上面的代码得到的错误图像。
我尝试将查询更改为 "SELECT * FROM '" & cmbHeader.SelectedItem.ToString & "'" 但我得到一个不同的错误。如何根据我在第一个 ComboBox 上选择的内容填充我的第二个 ComboBox?请帮助我卡住了。谢谢。 :)
【问题讨论】:
-
如何使用单个 qoutes 作为表名?并且您从组合框中获取 selecteditem 而不是选择 selectedvalue 或 selectedtext。