none
Connection String Visual Studio zum Sql Server 2008 Express RRS feed

  • Frage

  • Nachdem ich den Laptop neu aufgesetzt und den SQL Server (Express 2008) installiert habe gelingt es mir nicht den richtigen Connection-String zw. ASP-Net(VB) zum Server zusammenzubasteln.

    Neben den unten angeführten habe noch dutzende andere - für mich sogar vollkommen sinnlose - probiert.

    "Server=Bernhard-TOSH\SQLExpress;Database=tgp;Trusted_Connection=true;"
    Die von der Anmeldung angeforderte 'tgp'-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
    Fehler bei der Anmeldung für den Benutzer 'Bernhard-TOSH\Bernhard'.

    Server=Bernhard-TOSH\SQLExpress;Database=tgp;Trusted_Connection=true;User Id=Bernhard;Password=[abc];
    Die von der Anmeldung angeforderte 'tgp'-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
    Fehler bei der Anmeldung für den Benutzer 'Bernhard-TOSH\Bernhard'.

    Server=Bernhard-TOSH\SQLExpress;Database=tgp;Trusted_Connection=false;User Id=Bernhard;Password=[abc];
    Fehler bei der Anmeldung für den Benutzer 'Bernhard'.

    jeweils auch mit .\SQl... probiert

    "Data Source=.\SQLEXPRESS;AttachDbFilename=E:\ASP_Projekte\TGPsql\tgp\tgp\App_Data\tgp.mdf;Integrated Security=True;User Instance=True"
    Die physische Datei 'E:\ASP_Projekte\TGPsql\tgp\tgp\App_Data\tgp.mdf' kann nicht geöffnet werden. Betriebssystemfehler 5: '5(failed to retrieve text for this error. Reason: 15105)'.
    Fehler beim Anfügen einer automatisch benannten Datenbank für die Datei E:\ASP_Projekte\TGPsql\tgp\tgp\App_Data\tgp.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.

    Über das Managementstudio kann ich problemlos auf die Datenbank zugreifen, Tabellen erstellen, etc.

    Lege ich im Visual Studio eine Datenbank an, kann ich sie nicht im Management Studio anfügen.

    Ich hab beim googlen soviele verschiedene Varianten gefunden, aber keine hat funktioniert. Dem User 'Bernhard-TOSH\Bernhard' habe ich im SQL-Server alle Rechte vergeben, die er nur haben kann.

    Ich habe KEINE Ahnung mehr, warum es nicht funktioniert. Bitte helfen

    meine Daten des SQL-Servers

    Microsoft SQL Server Management Studio                        10.50.1600.1
    Microsoft Data Access Components (MDAC)                        6.1.7600.16385
    Microsoft MSXML                        3.0 4.0 5.0 6.0
    Microsoft Internet Explorer                        8.0.7600.16385
    Microsoft .NET Framework                        2.0.50727.4952
    Betriebssystem                        6.1.7600

    Samstag, 14. August 2010 18:57

Antworten

  • Bleib' vorerst bei dem Connection String von 1). Mit "AttachDbFilename" / "User Instance=True" erzeugst Du eine Benutzerinstanz; geht mit der Express Edition natürlich (noch), aber bevor das andere Probleme erzeugt, versuchen wir erst mal der klassischen Variante.

    (local) ist eine Art systemseitiges Alias für die lokale Standard-Instanz, alternative kannst Du auch einfach nur einen Punkt . angeben; funktioniert genauso. Ist wie bei einem Web-Server, wo man localhost verwenden kann, halt der eigene Rechner.

    Wenn es aber wirklich nur (local) ist, scheint mir das zunächst wirklich die Standard- und keine benannte Instanz zu sein; wundert mich etwas. Sieh mal in der Dienste-Verwaltung nach, was genau bei SQL Server steht; nichts oder in Klammern (SQLEXPRESS)? Alternative in der Registry unter HKLM\Software\Microsoft\Micrososft SQL Server => Key: InstalledInstances.

    Wie auch immer, wenn Du in Deinem ConnectionString 1) Server=(local) angibst, sollte es jedenfalls gehen; in SSMS geht es ja auch.

     


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Dienstag, 17. August 2010 06:23
  • (local) und sowie ein einfacher Punkt . sind Aliase für den lokalen Rechner.

    Bei der Standard-Instanz kannst Du also einfach nur den Namen des Rechners angeben, bei Dir somit Bernhard-TOSH, bei einer benannten Instanz kommt mit Backslash getrennt der Name der Instanz noch hinzu.

    Übrigens, es gibt immer noch Programme, die keinen Bindestrich im Rechnernamen mögen (weshalb auch immer), das Problem hatten wir letztens erst mal wieder mit dem Team Foundation Server.


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Sonntag, 22. August 2010 09:05

Alle Antworten

  • Hallo Benno17,

    wenn Du Dich per SSMS anmeldest, was Deiner Aussage nach geht, steht dort als Server Name auch "Bernhard-TOSH\SQLExpress"? Meldest Du Dich dort mit der Windows- oder mit der SQL Server Authentifizierung an?

    Die Meldungen deuten alle darauf hin, das der verwendete Account nicht eingerichtet ist.

    1) und 2) sind identisch, da beides mal Trusted_Connection=TRUE verwendet wird und so bei 2) die SQL Account Daten ignoriert werden. Wenn Du bei 2) versuchst, Dich mit einem SQL Account anzumelden, dann muss Du es auf =FALSE setzten, eben wie bei 3).
    Hast Du schon versucht, einen SQL Account anzulegen und Dich damit anzumelden?

    Siehe auch: http://www.connectionstrings.com/sql-server-2008


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Sonntag, 15. August 2010 07:57
  • Hallo,

    wenn ich mich am SQL-Server anmelde steht unter Servername "(local)" (warum auch immer, da bei der Installation nach nichts gefragt wurde).

    Ist das mein Problem?, wenn ja wo und wie kann ich den Namen vergeben.

    Montag, 16. August 2010 18:54
  • Ich habe am Sql-Server einen Account angelegt (mit Sql server logon) und bekomme bei diesem Connection String

    "Data Source=.\SQLEXPRESS;" & _
          "AttachDbFilename=E:\ASP_Projekte\TGPsql\tgp\tgp\App_Data\tgp.mdf;User Id=tgp;Password=tgp;"

    diese Meldung:

    "Fehler bei der Anmeldung für den Benutzer 'tgp'."

     

     

    Montag, 16. August 2010 19:17
  • Bleib' vorerst bei dem Connection String von 1). Mit "AttachDbFilename" / "User Instance=True" erzeugst Du eine Benutzerinstanz; geht mit der Express Edition natürlich (noch), aber bevor das andere Probleme erzeugt, versuchen wir erst mal der klassischen Variante.

    (local) ist eine Art systemseitiges Alias für die lokale Standard-Instanz, alternative kannst Du auch einfach nur einen Punkt . angeben; funktioniert genauso. Ist wie bei einem Web-Server, wo man localhost verwenden kann, halt der eigene Rechner.

    Wenn es aber wirklich nur (local) ist, scheint mir das zunächst wirklich die Standard- und keine benannte Instanz zu sein; wundert mich etwas. Sieh mal in der Dienste-Verwaltung nach, was genau bei SQL Server steht; nichts oder in Klammern (SQLEXPRESS)? Alternative in der Registry unter HKLM\Software\Microsoft\Micrososft SQL Server => Key: InstalledInstances.

    Wie auch immer, wenn Du in Deinem ConnectionString 1) Server=(local) angibst, sollte es jedenfalls gehen; in SSMS geht es ja auch.

     


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Dienstag, 17. August 2010 06:23
  • Danke (etwas verspätet - war ein paar Tage auf Kurzurlaub)

     

    der Hinweis mit Server=(local) hat funktioniert.

    Noch eine Frage: Was muss man bei der Installation beim Sql Server eingeben, damit der Name nicht '(local)' ist.
    Ist das bei der Frage Standard- bzw. Benutzerinstanz ??

    Samstag, 21. August 2010 18:06
  • (local) und sowie ein einfacher Punkt . sind Aliase für den lokalen Rechner.

    Bei der Standard-Instanz kannst Du also einfach nur den Namen des Rechners angeben, bei Dir somit Bernhard-TOSH, bei einer benannten Instanz kommt mit Backslash getrennt der Name der Instanz noch hinzu.

    Übrigens, es gibt immer noch Programme, die keinen Bindestrich im Rechnernamen mögen (weshalb auch immer), das Problem hatten wir letztens erst mal wieder mit dem Team Foundation Server.


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Sonntag, 22. August 2010 09:05
  • Danke für deine Hinweise (waren äußerst hilfreich).

    Werde mich jetzt dem eigentlichen Problem (meiner Anwendung) zuwenden.

    danke

     

    Montag, 23. August 2010 11:01