基本上,我有一个VB.NET项目,我用它连接到远程MySQL服务器。
我可以提供的凭据是“server ip”,“port”,“database ID”,“username”和“password”。
非常基本的东西,除了它是给定的DB ID而不是实际的DB名称。如何检索链接到该ID的数据库的名称?
目前我使用此连接字符串连接到它
connection.ConnectionString = "Host=" & server & ";port=" & port & ";user=" & uname & ";password=" & pword & ";"
注意:我需要能够在变量中使用这些变量的原因是因为我计划将此工具分发给我的一些朋友,这些朋友有不同的MySQL服务器要连接,具有不同的数据库名称等。并且因为没有由于安全原因,每个人都需要知道数据库的调用内容。
编辑:我能做的另一件事是让我的程序检查服务器上的每个数据库,并返回哪个数据库中有某个表,然后将该输出用于我程序的其余部分。
答案 0 :(得分:0)
我找到了一种解决方法,虽然这可能不适用于其他MySQL数据库。
我是这样做的:
Public Function sqlConnectTest(ByVal server, port, instance, uname, pword) As Boolean
Dim connection As MySqlConnection
connection = New MySqlConnection()
connection.ConnectionString = "Host=" & server & ";port=" & port & _
";user=" & uname & ";password=" & pword & ";"
Try
connection.Open()
MessageBox.Show("Connection Opened Successfully")
**Dim stm As String = "SELECT TABLE_SCHEMA from information_schema.TABLES where TABLE_NAME like 'survivor'"**
Dim cmd As MySqlCommand = New MySqlCommand(stm, connection)
Dim reader As MySqlDataReader = cmd.ExecuteReader()
While reader.Read()
DBname = reader.GetString(0)
End While
reader.Close()
connection.Close()
Return True
Catch mysql_error As MySqlException
MessageBox.Show("Error Connecting to Database: " & mysql_error.Message)
Return False
Finally
connection.Dispose()
End Try
End Function
显然,只有拥有一个information_schema数据库时,此解决方案才有效,该数据库包含一个显示服务器上所有数据库中所有表的表。