Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] SQL Networkinterface Error 26
Sareth
myCSharp.de - Member



Dabei seit:
Beiträge: 15

Themenstarter:

[gelöst] SQL Networkinterface Error 26

beantworten | zitieren | melden

Hallo,

ich habe folgende Umgebung:
Einen Server (im lokalen Netzwerk) auf dem Microsoft SQL 2008 R2 Express und einen PC mit Visual C# 2010 Express.
Auf dem Server habe ich eine Datenbank-Instanz sowie einige Tabellen bereits angelegt. Der PC soll auf diese Datenbank zugreifen.

Leider bekomme ich die Verbindung zu Datenbank nicht auf die Reihe. Habe schon diverse Foren durchforstet und mich auch am Openbook orientiert.

Hier der Code-Ausschnitt von der Verbindung (habe die entsprechenden Werte hier durch dummys ersetzt):

            try
            {
                SqlConnectionStringBuilder conBuilder = new SqlConnectionStringBuilder();
                conBuilder.DataSource = "IP";
                conBuilder.InitialCatalog = "Instanz";
                conBuilder.UserID = "Hostname\\Username";
                conBuilder.Password = "Passwort";
                SqlConnection con = new SqlConnection(conBuilder.ConnectionString);
                con.Open();
            }
            catch (Exception e)
            {
                MessageBox.Show("Fehler: " + e, "Fehler");
            }

Habe auch bereits versucht über "Dienstbasierte Datenbank" die *.mdf Datei über UNC zu öffnen, dabei gab es allerdings eine Fehlermeldung.

Finde leider keine Lösung für mein Problem und weiß nicht was ich bei der Verbindung falsch gemacht habe :(

Hoffe ihr könnt mir einen Tipp geben!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sareth am .
private Nachricht | Beiträge des Benutzers
JuyJuka
myCSharp.de - Experte

Avatar #avatar-2316.jpg


Dabei seit:
Beiträge: 2282
Herkunft: Deutschland

beantworten | zitieren | melden

Hallo Sareth,

genau kann ich es nicht sagen, aber ich denke du hast InitialCatalog und DataSource nicht korrekt gefüllt.

Wenn der SQL-Server die Standard-Installtion ist muss es wie folgt sein:


conBuilder.DataSource = "IP";
conBuilder.InitialCatalog = "Datenbank-Name";
conBuilder.UserID = "Hostname\\Username";
conBuilder.Password = "Passwort";

Wenn er nicht die Standard-Installation ist, bekommt der SQL-Server einen eigenen Namen (der Instanz-Name) und muss wie folgt angegeben werden.


conBuilder.DataSource = "IP\Instanz-Name";
conBuilder.InitialCatalog = "Datenbank-Name";
conBuilder.UserID = "Hostname\\Username";
conBuilder.Password = "Passwort";

Gruß
Juy Juka
private Nachricht | Beiträge des Benutzers
Diräkt
myCSharp.de - Member



Dabei seit:
Beiträge: 619
Herkunft: Schweiz

beantworten | zitieren | melden

Hallo Sareth


Vielleicht wäre es doch noch hilfreich uns den Fehler mitzuteilen ? :-)


Beste Grüsse

Diräkt
private Nachricht | Beiträge des Benutzers
Sareth
myCSharp.de - Member



Dabei seit:
Beiträge: 15

Themenstarter:

beantworten | zitieren | melden

Zitat von JuyJuka
Wenn er nicht die Standard-Installation ist, bekommt der SQL-Server einen eigenen Namen (der Instanz-Name) und muss wie folgt angegeben werden.


conBuilder.DataSource = "IP\Instanz-Name";
conBuilder.InitialCatalog = "Datenbank-Name";
conBuilder.UserID = "Hostname\\Username";
conBuilder.Password = "Passwort";

Hallo JuyJuka,

ok das hatte ich wirklich anders da stehen. Habe es entsprechend geändert aber es kommt nach wie vor der gleiche Fehler. Hatte auch schon die Windows Firewall vom Server in Verdacht, aber auch nach deaktivieren erhalte ich die Fehlermeldung.

Habe einen Screenshot davon angehängt!
Attachments
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15702
Herkunft: BW

beantworten | zitieren | melden

Error 26 ist der häufigste SQL Server Fehler und ist meist auf eine Fehlkonfiguration des Servers zurück zu führen.
Also nimm Dir die Zeit, nutz ein wenig Google gemäß [Hinweis] Wie poste ich richtig? Punkt 1.1 und prüfe alle Hinweise (Dienst wirklich aktiv? Firewall? Reagiert SQL Management Studio?....), die Du bezüglich Error 26 finden kannst.

sql server error 26

Wenn dann alles geprüft ist, dann kannst Dich auf die Fehlersuche im Code machen.
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #gvp27cjXxMEZQuCpk4WQ.jpg


Dabei seit:
Beiträge: 3737
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

IMMER in dieser Reihenfolge testen :

Per Management Studio vom Server aus mit Windows-Sicherheit auf die Datenbank zugreifen.

Per Management Studio vom Server aus mit SQL-Sicherheit (User, Kennwort) auf die Datenbank zugreifen.

Per Management Studio vom Arbeitsplatz-PC aus mit SQL-Sicherheit auf die Datenbank zugreifen.

Firewall ausschalten.

Prüfen ob TCP-IP-Protokoll aktiviert ist (Ist bei Express per default ausgeschaltet).

Erst dann mit Deinem Code auf die Datenbank zugreifen.

Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
Sareth
myCSharp.de - Member



Dabei seit:
Beiträge: 15

Themenstarter:

beantworten | zitieren | melden

Konnte die Konfigurationsfehler vom Server beheben, jetzt hängt es wohl nur noch an der Anmeldung. Ich bekomme sowohl im Mixed-Mode als auch im Windows-Authentication-Mode jeweils den gleichen Fehler.

Es scheitert schon am zweiten Punkt, egal in welchem Modus. Habe auch Testweise einen SQL-Benutzer in der Datenbank selbst angelegt, mit diesem kann ich mich aber auch nicht anmelden. Habe auch keine Möglichkeit gesehen diesem Benutzer ein Passwort zu vergeben.
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10072

beantworten | zitieren | melden

Und du hast auch auf dem Sql Server TCP/IP eingeschaltet?
private Nachricht | Beiträge des Benutzers
Sareth
myCSharp.de - Member



Dabei seit:
Beiträge: 15

Themenstarter:

beantworten | zitieren | melden

Zitat von FZelle
Und du hast auch auf dem Sql Server TCP/IP eingeschaltet?

Ja ist aktiviert. Bekomme jetzt nur noch Authentifizierungsfehler.

Über die Verwaltungskonsole kann ich mich mit dem Windows Benutzer einloggen, mit einem SQL-Benutzer allerdings nicht (wobei ich mir nicht sicher bin ob ich den richtig angelegt habe. Hab da in der MSDN eine Anleitung gefunden in der man einen Nutzer direkt innerhalb der Datenbank anlegt, dachte das müsste für die Instanz erfolgen. Konnte auch kein Kennwort festlegen).

Mit meinem Programm kann ich mich überhaupt nicht verbinden und erhalte sofort Authentifizierungsfehler. Da ich privat keine Domain habe gebe ich den Benutzernamen am Server nach dem Schema "<Hostname>\<Username>" ein.
private Nachricht | Beiträge des Benutzers
WillBill
myCSharp.de - Member



Dabei seit:
Beiträge: 4

beantworten | zitieren | melden

Hallo,

meine bescheidenen Erfahrungen nach reicht für ein SQL Benutzer Login ein Eintrag im SSMS unter Security -> Logins.

Ein Login war dann über Applikation und SSMS möglich. Nachdem ich zusätzlich ein Login in der DB (<Datenbankname> --> Security --> Users) angelegt hatte, funktionierte das Login nicht mehr.

Viele Grüße,
WillBill
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #gvp27cjXxMEZQuCpk4WQ.jpg


Dabei seit:
Beiträge: 3737
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Hallo Sareth,
Zitat von Sareth
Ich bekomme sowohl im Mixed-Mode als auch im Windows-Authentication-Mode jeweils den gleichen Fehler.

Der SQL-Server MUSS auf Mixed-Mode (Gemischte Anmeldung..) stehen. Wenn Du den SQL-Server auf "Windows-Auth." stellt wirst Du beim Anmelden mit User/Kennwort IMMER eine Fehlermeldung bekommen.
Zitat
Es scheitert schon am zweiten Punkt, egal in welchem Modus. Habe auch Testweise einen SQL-Benutzer in der Datenbank selbst angelegt, mit diesem kann ich mich aber auch nicht anmelden. Habe auch keine Möglichkeit gesehen diesem Benutzer ein Passwort zu vergeben.

Der Datenbankbenutzer sa ist schon angelegt. Wie folgt aktivieren und Kennwort vergeben :

Im SQL Server Management Studio "Sicherheit" / "Anmeldungen"
Klick auf "sa".
Bei "Allgemein" Kennwort zweimal eingeben.
Bei "Status" auf (*) Erteilen und (*) Aktiviert stellen.

Das wars schon !
Zitat
. Da ich privat keine Domain habe gebe ich den Benutzernamen am
Server nach dem Schema "<Hostname>\<Username>" ein.

Falsch ! Bei SQL-Auth. als Username nur 'sa' angeben, ohne die Apostophzeichen.

Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
Sareth
myCSharp.de - Member



Dabei seit:
Beiträge: 15

Themenstarter:

beantworten | zitieren | melden

Vielen Dank!
Ich glaube es hat funktioniert. Beim Verbinden kommt zumindest keine Fehlermeldung mehr. Und da noch keine Daten in der DB sind kommt bei den Abfragen natürlich noch nichts zurück ;) Aber ich denke mal es würden wieder Fehlermeldungen kommen wenn es noch ein Problem mit der Verbindung gäbe.

Vielen Dank an alle für die Hilfe :)
private Nachricht | Beiträge des Benutzers