none
Einbindung einer MS SQL Server 2008 Express Datenbankdatei schlägt fehl! RRS feed

  • Frage

  • Hallo!

    Ich habe mit MS SQL Server 2008 Express eine Datenbank eingerichtet. In den Optionen ist "Remotezugriff" aktiviert. Im Server Manager ist für den SQL Native Client 10.0 "Shared Memory" aktiviert, alles andere deaktiviert. Für die SQL Server-Netzwerkkonfiguration ist "VIA" deaktiviert, alles andere aktiviert.

    Ich verwende die Windows-Authentifizierung bei meiner SQL Datenbank. Die Datenbank liegt auf diesem PC (also auf jenem PC, von dem aus ich auch auf die Datenbank mittels C# zugreifen will.

    Ich starte also den Assistenten in MS Visual C# 2008 Express, wähle "Neue Datenquelle hinzufügen" --> "Datebank" --> "Neue Verbindung" --> "Datenquelle: Microsoft SQL Server-Datenbankdatei" --> "Datenbanbieter: .NET Framework-Datenanbieter für SQL Server" --> "Name der Datenbankdatei" --> "Durchsuchen" --> Wähle die Datenbank.mdf aus --> "Windows-Authentifizierung verwenden" und klicke dann auf "Testverbindung".

    Ergebnis:


    So, welche Einstellungen stimmen nicht? Ich selbst gebe ja keinen Instanznamen an, ich wähle ja nur die DB-Datei aus. Das heisst, verschrieben kann ich mich nirgendwo haben. Remotezugriff ist wie gesagt aktiviert.



    Wäre wirklich dankbar für eure Hilfe!
    Lg,
    Tommy!

    P.S.: Firewall habe ich zu Testzwecken komplett abgeschalten gehabt. Installiertes OS ist Vista x64.
    Mittwoch, 1. April 2009 21:19

Antworten

  • Also, ich habe das Problem jetzt gelöst. Es war tatsächlich der falsche Connectionstring, der durch den Wizard erzeugt wurde. Da man das ./SQLEXPRESS nicht ändern kann, geh ich davon aus, dass man sich mit dem Wizard auch nur zur Standardinstanz verbinden kann.

    Der String, der funktioniert lautet jetzt:
    Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\Finanzen.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True

    Der String, der nicht funktioniert hat war:
    Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\Microsoft SQL Server\MSSQL10.UNTERNEHMEN\MSSQL\DATA\Finanzen.mdf";Integrated Security=True;Connect Timeout=10;Network Library=dbmslpcn;User Instance=True;Context Connection=False

    Hier war also eine benannte Instanz namens "Unternehmen" im Spiel. Leider funktioniert nur die Standardinstanz SQLEXPRESS.

    Lg,
    Tommy!
    Sonntag, 5. April 2009 21:18

Alle Antworten

  • Nicht so wirklich. Ich hatte Named Pipes und TCP/IP schon für den SQL Server aktiviert, aber das hat nicht geholfen.

    Eine andere Frage:
    Beim auswählen der Datenbank-Datei gibt es noch zusätzlich folgendes Konfigurtionsfenster:
    http://img264.imageshack.us/img264/9879/instanz.jpg

    Was genau ist mit Data Source gemeint? Das "Programm" SQL Server 2008 Express oder die Instanz? Ich habe nämlich NICHT die Standardinstanz bei der Installation genommen, sondern eine Benannte Instanz! Kann es sein, dass C# 2008 und SQL Server 2008 (beide Express) nur mit Standardinstanzen hantieren können? Muss ich vielleicht dort, wo jetzt ./SQLEXPRESS steht ./<COMPUTERNAME>/<NAME DER INSTANZ> angeben?

    Das Problem ist, dass ich dort leider nichts reinschreiben kann. Die DropDown-Liste ist auch leer, wie man sieht. Mir sind also die Hände gebunden...

    Den Connection String, den man im Wizard auch sieht, kann ich auch nicht bearbeiten...
    Da würde das rauskommen:
    Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\Microsoft SQL Server\MSSQL10.UNTERNEHMEN\MSSQL\DATA\Finanzen.mdf";Integrated Security=True;Connect Timeout=10;Network Library=dbmslpcn;User Instance=True;Context Connection=False

    Ist da vielleicht schon irgendwo ein Fehler drin?

    Kanns an x64 liegen? Habe aber extra die SQL Server 2008 Express With Advanced Services x64 runtergeladen und alle Komponenten installiert...
    (Wie im Webcast beschrieben: http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032405658)

    Vielleicht sollt ich den Hrn. Dröge mal anschreiben...
    Donnerstag, 2. April 2009 17:05
  • Also, ich habe das Problem jetzt gelöst. Es war tatsächlich der falsche Connectionstring, der durch den Wizard erzeugt wurde. Da man das ./SQLEXPRESS nicht ändern kann, geh ich davon aus, dass man sich mit dem Wizard auch nur zur Standardinstanz verbinden kann.

    Der String, der funktioniert lautet jetzt:
    Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\Finanzen.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True

    Der String, der nicht funktioniert hat war:
    Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\Microsoft SQL Server\MSSQL10.UNTERNEHMEN\MSSQL\DATA\Finanzen.mdf";Integrated Security=True;Connect Timeout=10;Network Library=dbmslpcn;User Instance=True;Context Connection=False

    Hier war also eine benannte Instanz namens "Unternehmen" im Spiel. Leider funktioniert nur die Standardinstanz SQLEXPRESS.

    Lg,
    Tommy!
    Sonntag, 5. April 2009 21:18