Announcement

Collapse
No announcement yet.

Prüfen ob Datenbank existiert?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Prüfen ob Datenbank existiert?

    Hey,

    wie kann ich überprüfen ob eine Datenbank existiert, ohne diese dabei zu erstellen?
    Es gibt ja Create Table if not exists aber ich will dem Benutzer nur anbieten diese zu erstellen, also dies vorher überprüfen.
    Ob das MySQL System installiert ist habe ich schon aber ich würde jetzt gerne prüfen, ob die DB existiert oder nicht.
    Ich verwende übrigens auch den MySQL-Connector/Net und natürlich ADO.NET

    Das habe ich bisjetzt versucht:

    Code:
    sqlConnectionDatbaseTest.ConnectionString = "SERVER=localhost;" + "UID=root;" +
                                                "PASSWORD=;";
    sqlCommandDatabaseTest.Connection = sqlConnectionDatabaseTest;
    
    try
    {
        sql_connectionDatabaseTest.Open();
            
        // CommandText zum Erstellen der Datenbank
        sql_commandDatabaseTest.CommandText = @"CREATE DATABASE IF NOT EXISTS Kunde DEFAULT CHARACTER SET 
                                                latin1 COLLATE latin1_swedish_ci;";
        sql_commandcommandDatabaseTest.ExecuteNonQuery();
    
    catch(Exception ex)
    {
        MessageBox.Show(ex.ToString()); 
    }
    sql_connectionDatabaseTest.Close();
    Naja, es gibt zwar auch keine Exception aber die Datenbank ist leider auch nicht da.
    Ich habe habe es auch schon mit Angabe der DB im ConnectionString versucht aber das funktioniert auch nicht.
    Dummerweise kann man das ja auch nicht mit in die Exception reinschreiben, weil es sich ja auch um falsche Zugangsdaten etc. handeln kann.

    Wie macht man das?

    Danke schon einmal im voraus

  • #2
    Wenn keine DB angelegt wird, muss ja wohl eine Fehlermeldung kommen oder? Vielleicht einfach ein Syntax Problem, z.B. das Semicolon am Ende des Kommandos.

    Hier sind ein paar Beispiele:
    http://dev.mysql.com/doc/refman/5.1/...onnecting.html

    offiziell soll es so sein, dass man mit Auslassen der DB Angabe im Connectionstring eben nur mit dem Server verbunden ist.
    Serverseitig gibt es ein Kommando names "show database", das könntest to als sql query mal ausprobieren.
    Gruß, defo

    Comment


    • #3
      (Vielleicht überseh ich was in der Frage)
      das war nicht möglich

      using System.IO
      string fileName = "Verzeichnis"
      if ((File.Exists(fileName))) {
      File.Delete(fileName);
      }
      JonDonym: privacy needs anonymity more than ever

      Comment


      • #4
        Das wird nicht funktionieren, wenn die DB auf einem anderen Server ggf. mit einem anderen BS liegt. Die Verbindung wird per TCP IP hergestellt. Warum sollte man etwas ueber die Dateien der DB wissen muessen. Und bei Wechsel der DB ist die Angabe hinfaellig
        Christian

        Comment


        • #5
          Man kann auch folgendes tun:

          //Verbindung zu DB
          herstellen
          Mysql_connect('dbname', 'username', 'pw');
          Or die "Die DB existiert nicht":

          Comment


          • #6
            Das ist PHP
            Christian

            Comment


            • #7
              Nur zur Info, falls es jemand übersehen hat: Der Thread ist schon etwas älter.
              Gruß, defo

              Comment

              Working...
              X