-1

我是编程新手,我正在开发一个基本的 VB.NET 应用程序,它允许用户从 MySQL 中选择、插入、更新和删除各种数据表。

我遇到的麻烦是,我需要用一个特定数据库中的所有表名填充一个组合框,以便用户可以选择要使用的数据库表。我认为我的代码可以工作,但是当我运行应用程序时我得到的只是一个空白的组合框。

有人可以告诉我我的代码有什么问题吗?

提前非常感谢!

代码:

Private Sub TableList_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles TableList.SelectedIndexChanged

    Try

        command = New MySqlCommand
        dt = New DataTable
        adapter = New MySqlDataAdapter

        If (conn.State = ConnectionState.Closed) Then
            setConnection()
        End If

        command.Connection = conn
        command.CommandText = "SHOW TABLES"

        adapter.SelectCommand = command
        reader = command.ExecuteReader

        'adapter.Fill(dt)
        dt.Load(reader)

        TableList.DataSource = dt
        TableList.DisplayMember = "Tables_in_sampledata" 'What is displayed
        TableList.ValueMember = "Tables_in_sampledata" 'The ID of the row

    Catch ex As MySqlException
        MessageBox.Show("Error1: " & ex.Message)
    Finally
        reader.Close()
        conn.Close()
    End Try

End Sub
4

1 回答 1

0

而不是SHOW TABLES,使用以下查询

SELECT DISTINCT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE  TABLE_SCHEMA='YourDatabase';
于 2012-10-02T02:55:09.480 回答