2014-01-15 92 views
1

嗨,夥計們我想寫一些代碼來檢查MySQL數據庫是否存在,然後在控制檯中寫入一行(如果存在或不存在)。檢查MySQL數據庫是否存在與VB

我做了一些Google搜索,發現這個代碼,但我得到一個語法錯誤,如果有人知道如何做到這一點將不勝感激。

Function DoesDBExist(DBConnectionString As String, Logger As String) 

    Dim exists As Byte = 0 

    Dim conn As MySqlConnection = New MySqlConnection(DBConnectionString) 

    Dim cmd As MySqlCommand = New MySqlCommand("SELECT case when exists " & _ 
     "(select 1 from sys.Databases SELECT case when exists " & _ 
     "(select 1 from sys.Databases where Name = @DbName) " & _ 
     "then 1 else 0 end as DbExists", conn) 

    cmd.Parameters.AddWithValue("@DbName", "MDLUpdate") 

    conn.Open() 

    exists = CByte(cmd.ExecuteScalar()) 
    Console.WriteLine(exists) 
    Console.ReadKey() 
    conn.Close() 

    Return CBool(exists) 

End Function 

請原諒我的標籤我不是100%肯定有哪些使用

回答

0

你的代碼可能是這樣的

Function DoesDBExist(DBConnectionString As String, Logger As String) as Boolean 

    Dim conn As MySqlConnection = New MySqlConnection(DBConnectionString) 
    Dim cmd As MySqlCommand = new MySqlCommand("SELECT IF(EXISTS (SELECT SCHEMA_NAME " & _ 
     "FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = @DbName), 'Y','N')", conn) 
    cmd.Parameters.AddWithValue("@DbName", "MDLUpdate") 
    conn.Open() 
    Dim exists As String = cmd.ExecuteScalar().ToString() 
    Console.WriteLine(exists) 
    conn.Close() 
    Return IF(exists = "Y", True, False) 

End Function 
相關問題