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