我是帶有 xampp 和 VB.net 連接的 mySQL 新手,我嘗試研究我的問題,但我無法理解所有問題,請您在下面解釋并更正我的代碼
Try
openCon() ''connection
mysqlCommand.Connection = con
mysqlCommand.CommandText = "SHOW TABLES;"
mysqlAdapter.SelectCommand = mysqlCommand
data.Clear() ''dataset
mysqlAdapter.Fill(data)
con.Close()
ListBox1.DataSource = data.Tables(0)
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
當我運行這段代碼時,我什么也得不到。
uj5u.com熱心網友回復:
您檢索表名的代碼是正確的。錯誤是在分配給 ListBox 資料源時沒有指定應該使用 Table(0) 的哪一列來顯示 ListBox 中的行。
如果不將 DisplayMember 屬性設定為列的名稱,則串列框只能顯示您系結的物件的名稱。此物件是 DataRowView。
用于填充 DataAdapter 的命令 SHOW TABLES 創建一個具有單列的表,該列的名稱是,Tables_of_<databasename>但您也可以使用索引方法而不給出列的確切名稱
Try
openCon()
mysqlCommand.Connection = con
mysqlCommand.CommandText = "SHOW TABLES;"
mysqlAdapter.SelectCommand = mysqlCommand
data.Clear()
mysqlAdapter.Fill(data)
con.Close()
'' Use whatever is the name of the first column in table returned
ListBox1.DisplayMember = data.Tables(0).Columns(0).ColumnName
ListBox1.DataSource = data.Tables(0)
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
為了完成我的回答,我建議您避免對連接、命令和資料配接器使用全域變數。當您忘記清除這些物件的先前使用時,您只會發現自己有麻煩。并且連接絕對不是保持全域的正確物件型別。使用Using 陳述句創建本地連接并在完成后將其銷毀。
最后,請記住,這SHOW TABLES是一個只有 MySql 才能理解的命令。如果您需要在不同的資料庫中使用相同的代碼,您應該更改該行并使用更標準化的查詢
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = @yourDBNameParameter
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/511607.html
