【问题标题】:How to get a list of all table available in the db? [closed]如何获取数据库中所有可用表的列表? [关闭]
【发布时间】:2015-12-08 09:47:42
【问题描述】:

我的目标是从我的数据库中获取所有表的名称并将其放在我的 ComboBox 中。多年来我没有使用过 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”不存在

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

【问题讨论】:

    标签: mysql sql .net vb.net


    【解决方案1】:

    使用查询

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

    或

    USE YOURDBNAME
    GO 
    SELECT *
    FROM sys.Tables
    GO
    

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

      For intcount=0 to mydata.rows.count-1
         comboBox1.Items.Add(mydata.rows(intcount).item(0))
       Next
    

    希望有帮助..

    【讨论】:

    • 现在我得到另一个错误:ComboBox1.Items = myData,说属性 Items 是只读的
    • 将 combobox.items 更改为 combobox.datasource
    • 好的,但现在在组合框中,而不是我得到的表名:System.Data.DataRowView 为什么?
    • 好的,我已经使用了您的代码,还添加了 .Reset 以删除之前使用的对象 myData 中的所有数据。谢谢,祝你有美好的一天:)
    【解决方案2】:

    mysql查询,

    SELECT table_name, table_type, engine FROM information_schema.tables
    

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2011-09-27
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2013-01-27
      相关资源
      最近更新 更多