我想用我的数据库“converter”的表格名称填充我的组合框,该表格有3个表格。我正在使用以下代码:
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个项目(与我的数据库中的表格数相同)。但是显示的是:
如何使用表格的确切名称填充我的组合框而不是这样?我尝试将.toString放在我的dt上,但这并不好。
任何人都可以帮助我吗?先感谢您。 :)
修改 我使用史蒂夫的方法,我能够得到价值。我用过这段代码。
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个额外的空值。参考这张图片:
答案 0 :(得分:1)
如果我是对的,传递给你的组合框DisplayMember和ValueMember的正确值是
Tables_in_converter
换句话说,命令返回的唯一列的名称是使用固定文本"Tables_in_"
后跟<databasename>
如果你想使用不同的方法,你可以用这种方式调用连接对象的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