Abhilash.J.A Ответов: 1

Как проверить, существует ли база данных на сервере mysql?


Всем привет,

Я использую приложения WPF с базой данных MySQL. Я действительно создал файл backup.sql. Затем, после создания файла. exe, как я могу проверить, существует ли БД, а затем пропустить следующий код?

Пожалуйста, помогите мне...

Что я уже пробовал:

Я действительно использовал этот код,

private void Application_Startup(object sender, StartupEventArgs e)  
        {  
            RestoreBehavior();  
        }  


Здесь, как я могу проверить здесь, существует ли mydb, а затем пропустить код?

private void RestoreBehavior()  
        {  
            string constring = "server=localhost;user=root;pwd=123456;";  
            string file = @"C:\Program Files (x86)\xxxx\xxxx\backup.sql";  
            using (MySqlConnection conn = new MySqlConnection(constring))  
            {  
                using (MySqlCommand cmd = new MySqlCommand())  
                {  
                    using (MySqlBackup mb = new MySqlBackup(cmd))  
                    {  
                        cmd.Connection = conn;  
                        conn.Open();  
                        mb.ImportInfo.TargetDatabase = "mydb";/*Here,How can I check here if mydb exist then skip the code?*/
                        mb.ImportInfo.DatabaseDefaultCharSet = "utf8";  
                        mb.ImportFromFile(file);  
                    }  
                }  
            }  
        }  

1 Ответов

Рейтинг:
5

Michael_Davies

Попробуй:

use information_schema;
SELECT COUNT(*) FROM schemata WHERE SCHEMA_NAME="<db name here>";


public bool DBExists(string conn, string dbName)
{
	bool functionReturnValue = false;

	using (MySqlConnection dbconn = new MySqlConnection(conn)) {
		using (MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM information_schema.schemata WHERE SCHEMA_NAME=@dbName", conn)) {
			functionReturnValue = false;
cmd.Parameters.AddWithValue("@dbName", dbName);
			dbconn.Open();
			if (cmd.ExecuteNonQuery() != 0) {
				functionReturnValue = true;
			}
			dbconn.Close();
		}
	}
	return functionReturnValue;
}