none
DB-Verbindung schlägt fehl RRS feed

  • Frage

  • Hallo zusammen,

    ich bin reiner "Express"-Entwickler, nutze also die kostenlsoen Versionen rein zur Hobby-Programmierung.

    Aktuell versuche ich mich mit Visual C#2010 und dem SQL Server 2008 R2, wie gesagt, jeweils in der der Express-Version.

    Auf meinem Rechner läuft Vista.

    Ich versuche, eine SQL-Datenbank aus der Applikation heraus ze öffnen, bekomme jedoch immer die folgende Fehlermeldung:

    System.Data.SqlClient.SqlException wurde nicht behandelt.
      Message=Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: SQL Network Interfaces, error: 26 - Fehler beim Bestimmen des angegebenen Servers/der angegebenen Instanz)
      Source=.Net SqlClient Data Provider
      ErrorCode=-2146232060
      Class=20

    Die Datenbank kann ich mit dem SQL Server Management Studio ohne weiteres öffnen und administrieren, auch der Verbindugssstring ist definitiv korrekt (bewusst einfach gehalten).

    Hat jemand eine Idee, was ich noch prüfen könnte?

    Vorab schon einmal vielen Dank.

    Gruß

    Thorsten

    Donnerstag, 2. Juni 2011 18:04

Antworten

  • Hallo Thorsten,

    schön wäre gewesen, Du hättest den definitiv korrekt (bewusst einfach gehalten) Verbindungsstring gepostet -
    denn wahrscheinlich liegt das Problem daran.

    Wenn Du die Standard-Einstellungen für den SQL Server Setup befolgt hast, sollte eine Verbindung funktionieren mit:

    string connectionString = @"Data Source=.\SQLEXPRESS;Integrated Security=true;Initial Catalog=<DatenbankName>";

    wobei <DatenbankName> der Name der Datenbank ist, den Du auch im SQL Server Management Studio siehst.
    Die Datenbank muss dabei im SQL Server bereits angelegt sein.

    Hast Du eine "Dienstbasierte Datebank" als Element in Dein Projekt eingefügt, so wird eine Benutzer-Instanz erzeugt -
    und das ist der einzige Weg mit den Datenbank-Explorer der Express Edition darauf zuzugreifen
    (für den Server Explorer würdest Du Visual Studio Profession oder höher benötigen).

    Dabei solltest Du die Verbindungszeichenfolge aus den Anwendungseinstellungen verwenden,
    die dabei erzeugt wird, und die sähe in etwa so aus:

    string connection= "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DatenbankName.mdf;Integrated Security=True;User Instance=True";

    wobei der einfachere Zugriff über Properties.Settings.Default.<DatenbankName> ginge,
    siehe Gewusst wie: Lesen von Einstellungen zur Laufzeit mit C#

    Gruß Elmar

    • Als Antwort markiert TMSchulze Samstag, 4. Juni 2011 15:17
    Donnerstag, 2. Juni 2011 18:59
    Beantworter

Alle Antworten

  • Hallo Thorsten,

    die Fehlermeldung sagt aber, dass die Datenbank nicht gefunden werden kann. Falls der Connectionstring wirklich korrekt ist, ist das Laufwerk vielleicht nicht verfügbar, oder greifst du auf eine nicht vorhandene Instanz zurück?!?!

    Um aber ganz sicher zu gehen, poste doch bitte mal den ConnectionString und mit welchem .net Provider du arbeitest.

    Danke!

    Viele Grüße
    Holger M. Rößler


    Kaum macht man es richtig, schon funktioniert es
    Donnerstag, 2. Juni 2011 18:52
  • Hallo Thorsten,

    schön wäre gewesen, Du hättest den definitiv korrekt (bewusst einfach gehalten) Verbindungsstring gepostet -
    denn wahrscheinlich liegt das Problem daran.

    Wenn Du die Standard-Einstellungen für den SQL Server Setup befolgt hast, sollte eine Verbindung funktionieren mit:

    string connectionString = @"Data Source=.\SQLEXPRESS;Integrated Security=true;Initial Catalog=<DatenbankName>";

    wobei <DatenbankName> der Name der Datenbank ist, den Du auch im SQL Server Management Studio siehst.
    Die Datenbank muss dabei im SQL Server bereits angelegt sein.

    Hast Du eine "Dienstbasierte Datebank" als Element in Dein Projekt eingefügt, so wird eine Benutzer-Instanz erzeugt -
    und das ist der einzige Weg mit den Datenbank-Explorer der Express Edition darauf zuzugreifen
    (für den Server Explorer würdest Du Visual Studio Profession oder höher benötigen).

    Dabei solltest Du die Verbindungszeichenfolge aus den Anwendungseinstellungen verwenden,
    die dabei erzeugt wird, und die sähe in etwa so aus:

    string connection= "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DatenbankName.mdf;Integrated Security=True;User Instance=True";

    wobei der einfachere Zugriff über Properties.Settings.Default.<DatenbankName> ginge,
    siehe Gewusst wie: Lesen von Einstellungen zur Laufzeit mit C#

    Gruß Elmar

    • Als Antwort markiert TMSchulze Samstag, 4. Juni 2011 15:17
    Donnerstag, 2. Juni 2011 18:59
    Beantworter
  • Hallo zusammen,

    es war natürlich der Connection String. Diesen hatte ich aus dem DB-Explorer herauskopiert, aber dort wird offensichtlich nur ein Teil angezeigt.

    Vielen Dank an alle und Sorry, dass ich euch Arbeit gemacht habe.

    Viele Grüße

    Thorsten

    Samstag, 4. Juni 2011 15:17