none
SQLConnection nicht ausführbar RRS feed

  • Frage

  • Hallo an Alle,

    wende mich mit der Bitte um Hilfe an Euch.

    Ausgangssituation:
    Habe im Projekt über Hinzufügen -> Neues Element eine SQL DB Hinzugefügt. Im Serverexplorer dann neue Tabellen hinzugefügt. Nun würde ich gern per Script Datensätze in die Tabellen hinzufügen. Die Verbindungszeichenfolge lautet:

     

    string conStr ="Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\db.mdf;Integrated " + "Security=True;User Instance=True";

    Die Connection stelle ich über
            

    SqlConnection conn = new SqlConnection(conStr);

    her. Aber sobald das Programm auf die Anweisung: conn.Open(); stößt, landet das Programm im Catch-Zweig und ich erhalte ich folgene Fehlermeldung:

    {"Fehler beim Anfügen einer automatisch benannten Datenbank für die Datei F:\\Test\\dbtest\\dbtest\\bin\\Debug\\db.mdf. Eine Datenbank mit diesem Namen ist bereits vorhanden, die angegebene Datei kann nicht geöffnet werden, oder sie befindet sich in der UNC-Freigabe."} System.Exception {System.Data.SqlClient.SqlException}

    Natürlich ist die DB vorhanden (hab sie ja angelegt). Es sollen ja lediglich Datensätze angefügt werden. Deshalb meine Frage:

    Was könnte die Ursache für diese Fehlermeldung sein und wie kann man das beheben?

    Danke für Eure Mühe!

    MfG

    Ralf

    Montag, 10. Mai 2010 16:42

Antworten

  • ...Problem gelöst...

    für alle, die mal ein ähnliches Problem haben, so hab ich es gelöst:

    - Eine mdf erstellen, Im Serverexplorer in der mdf Tabellen mit der Struktur der Originaltabelle aus der mdb erstellen.
    - Danach die Daten der gewünschten Tabelle der mdb anzeigen lassen (mittels rechtsklick auf die Tabelle und entsprechender Auswahl im Kontextmenü)
    - Alle DS markieren und kopieren
    - wechsel zur mdf, dort ebenfalls die entsprechende Tabelle auswählen und Dateb anzeigen lassen
    - jetzt die kopierten Datenb einfügen

    Das war es schon...;)

    Danke an alle die sich Gedanken genmacht haben!

    Ciao  Ralf

    • Als Antwort markiert Ralf A Montag, 10. Mai 2010 19:29
    Montag, 10. Mai 2010 19:28

Alle Antworten

  • Hallo Ralf,

    hast Du die Datenbankdatei noch im Server-Explorer eröffnet?
    Denn dann existiert bereits eine Verbindung.
    Trenne zunächst die Datenbank dort, bevor Du Deinen Code laufen läßt.

    Im übrigen wäre wäre einfacher, die Skripte via Management Studio
    (notfalls auch sqlcmd) auszuführen, anstatt erst ein Programm zu schreiben ;-)

    Gruß Elmar

    Montag, 10. Mai 2010 18:28
    Beantworter
  • Hallo Elmar,

    Danke erstmal für Deine Mühe sich meinem Problem anzunehmen!

    Zu Deiner Vermutung, die Verbindung ist getrennt. Daran kann es also nicht liegen. Mit dem Management Studio hab ich noch nicht gearbeitet, kann dazu also nicht viel sagen. Das Dilemma ist, in Der Developer Edition des SQL Servers kann man Daten im-/exportieren. Bei der Express Edition (im Serverexplorer) hab ich da bisher keine Möglichkeit gefunden. Ziel ist es, die Daten aus einer Access.mdb in die mdf DB zu übertragen. Wie stelle ich das in der Express Edition an? Geht das überhaupt?

    Gruß Ralf

     

    Montag, 10. Mai 2010 19:07
  • ...Problem gelöst...

    für alle, die mal ein ähnliches Problem haben, so hab ich es gelöst:

    - Eine mdf erstellen, Im Serverexplorer in der mdf Tabellen mit der Struktur der Originaltabelle aus der mdb erstellen.
    - Danach die Daten der gewünschten Tabelle der mdb anzeigen lassen (mittels rechtsklick auf die Tabelle und entsprechender Auswahl im Kontextmenü)
    - Alle DS markieren und kopieren
    - wechsel zur mdf, dort ebenfalls die entsprechende Tabelle auswählen und Dateb anzeigen lassen
    - jetzt die kopierten Datenb einfügen

    Das war es schon...;)

    Danke an alle die sich Gedanken genmacht haben!

    Ciao  Ralf

    • Als Antwort markiert Ralf A Montag, 10. Mai 2010 19:29
    Montag, 10. Mai 2010 19:28
  • Hallo Ralf,

    mit der Ausgangsfrage hat das ja nicht mehr viel zu tun (hat die sich in Luft aufgelöst!?!)

    Man kann sich natürlich auch so behelfen, wie Du es getan hast.
    Einfacher wäre aber das Management Studio Express
    Dort stehen zumindest die Import (und Export-) Assistenten zur Verfügung
    (wenn auch kein SSIS wie bei den Voll-/Developer-Versionen).

    Womit das Kopieren etwas schneller von der Hand gehen dürfte.

    Andere Möglichkeiten wären das Exportieren aus Access  (sofern vorhanden) heraus
    oder der SQL Server Migration Assistant 2008 for Access V4.0
    womit weitere Anpassungen möglich sind.

    Gruß Elmar

     

    Montag, 10. Mai 2010 19:39
    Beantworter
  • Hallo Elmar,

    nun ja, das Ausgangsproblem war, wie kann ich Datensätze aus einer mdb in eine mdf übertragen. Somit war die Frage nicht ganz korrekt formuliert. Bei meinem Versuch tauchte o. beschriebenes Problem auf.

    Managment Studio kannte ich nicht, deshalb noch einmal vielen Dank für Deinen Link!

    Womit Du absolut Recht hast, mit meiner beschriebenen Methode dauert das Übertragen eine kleine Ewigkeit. Elegant ist das nicht, aber wenigstens hab ich das gewünschte Resultat erzielt. Beim nächsten Mal greife ich gern auf Deine genannten Tools zurück. Nochmal vielen Dank!

    Ciao Ralf

    Montag, 10. Mai 2010 20:40