Mysql 用VB中的数据库表填充组合框
我想用包含3个表的数据库“converter”的表名填充combobox。我正在使用以下代码:Mysql 用VB中的数据库表填充组合框,mysql,database,vb.net,combobox,Mysql,Database,Vb.net,Combobox,我想用包含3个表的数据库“converter”的表名填充combobox。我正在使用以下代码: conn.ConnectionString = "server=localhost;userid=root;password=NewPass;database=converter" Try conn.Open() command.Connection = conn command.CommandText = "SHOW TABLES"
conn.ConnectionString = "server=localhost;userid=root;password=NewPass;database=converter"
Try
conn.Open()
command.Connection = conn
command.CommandText = "SHOW TABLES"
adapter = New MySqlDataAdapter(command.CommandText, conn)
adapter.SelectCommand = command
adapter.Fill(dt)
ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "column_name"
ComboBox1.ValueMember = "column_name"
Catch ex As Exception
End Try
此代码填充组合框中的3个项目(与数据库中的表数相同)。但这表明:
如何用表的确切名称填充组合框,而不是像这样?我试着在我的dt上加上.toString,但是没有用
有人能帮我吗?提前谢谢。:)
编辑
我使用了史蒂夫的方法,我能够得到这些值。我用了这个密码
conn.ConnectionString = "server=localhost;userid=root;password=NewPass;database=converter"
Try
conn.Open()
command.Connection = conn
command.CommandText = "SHOW TABLES"
adapter = New MySqlDataAdapter(command.CommandText, conn)
adapter.SelectCommand = command
dt = conn.GetSchema("TABLES")
adapter.Fill(dt)
ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "table_name"
ComboBox1.ValueMember = "table_name"
Catch ex As Exception
End Try
但现在它显示了3个额外的空值。请参阅此图:
如果我是对的,那么要传递给您的组合框DisplayMember的正确值是
Tables_in_converter
换句话说,命令返回的唯一列的名称是使用固定文本中的Tables\u
自动生成的,后跟
如果您想使用另一种方法,可以用这种方式调用connection对象的GetSchema方法
using cnn = new MySqlConnection(...)
cnn.Open()
Dim dt = cnn.GetSchema("TABLES")
ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "table_name"
ComboBox1.ValueMember = "table_name"
End Using
我使用了你的代码,它工作了,但现在它显示了3个额外的“空”项。我编辑了我的问题。我的方法是相互替代的。您应该在showtables方法或GetSchema方法之间进行选择。正如您在上面所写的,您同时调用了这两个行,当然,在显示哪个值的问题上,这些行与combo是完全混淆的。删除与适配器部件相关的代码哦,我明白了。我把适配器部分拆了,它工作得很好。非常感谢:)