Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何获取数据库中所有可用表的列表?_Mysql_Sql_.net_Vb.net - Fatal编程技术网

Mysql 如何获取数据库中所有可用表的列表?

Mysql 如何获取数据库中所有可用表的列表?,mysql,sql,.net,vb.net,Mysql,Sql,.net,Vb.net,我的目标是从数据库中获取所有表的名称,并将其放在组合框中。我已经多年没有使用vb.net了,现在我正在清理一些东西,但我需要帮助,因为我没有出来。这是我的代码: Imports MySql.Data.MySqlClient Public Class DataIn Dim myCommand As New MySqlCommand Dim myAdapter As New MySqlDataAdapter Dim myData As New DataTable Dim SQL As Strin

我的目标是从数据库中获取所有表的名称,并将其放在组合框中。我已经多年没有使用vb.net了,现在我正在清理一些东西,但我需要帮助,因为我没有出来。这是我的代码:

Imports MySql.Data.MySqlClient

Public Class DataIn

Dim myCommand As New MySqlCommand
Dim myAdapter As New MySqlDataAdapter
Dim myData As New DataTable
Dim SQL As String

Dim MysqlConn As MySqlConnection

Private Sub DataIn_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    MysqlConn = New MySqlConnection()

    'Connection String
    MysqlConn.ConnectionString = "server=localhost;" _
    & "user id=root;" _
    & "password=123456789;" _
    & "database=calendario"

    Try
        MysqlConn.Open()

        SQL = "SELECT name FROM calendario.tables"
        myCommand.CommandText = SQL
        myAdapter.SelectCommand = myCommand
        myAdapter.Fill(myData)
        ComboBox1.Items = myData

    Catch myerror As MySqlException
        MessageBox.Show("Connection failed: " & myerror.Message)
    Finally
        MysqlConn.Close()
        MysqlConn.Dispose()
    End Try

End Sub

End Class
我得到了这个信息:

表“calendario.tables”不存在

我做错了什么
此外,我还想知道如何加密连接字符串中硬编码的连接详细信息,因为将来必须将此应用程序分发给我的客户。

使用查询

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='dbName' 

并将您的
ComboBox1.Items=myData
更改为

  For intcount=0 to mydata.rows.count-1
     comboBox1.Items.Add(mydata.rows(intcount).item(0))
   Next
希望这对mysql查询有所帮助

SELECT table_name, table_type, engine FROM information_schema.tables

现在我在:ComboBox1.Items=myData上得到另一个错误,所说的属性Items是readonlychange combobox.Items to combobox.datasourceOkay,但现在在combobox中,而不是在我得到的表的名称中:System.Data.DataRowView为什么?好的,我已经使用了您的代码,还添加了.Reset以删除以前使用的对象myData中的所有数据。谢谢,祝你今天愉快:)
SELECT table_name, table_type, engine FROM information_schema.tables