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
Remote-Verbindung SQL Server 2005 Express
Maddinel
myCSharp.de - Member

Avatar #avatar-3180.gif


Dabei seit:
Beiträge: 1378
Herkunft: Deutschland

Themenstarter:

Remote-Verbindung SQL Server 2005 Express

beantworten | zitieren | melden

verwendetes Datenbanksystem: SQL Server 2005 Express

Hallo,

ich habe eine Frage zu einem ConnectionString für eine SQL-Server Verbindung.
Der ConnectionString sieht folgendermaßen aus:

"Server=MADDINPC\\SQLEXPRESS;Database=gbs_net;User ID=usr_gbs;Password=usr_gbs;Trusted_Connection=False;"

Was muss eigentlich genau unter "Server" stehen? Ich dachte eigentlich immer, dass dort der Name oder die IP-Adresse des Server-Rechners angegeben werden muss. Der oben stehende und lokal funktionierende ConnectionString enthält aber weder nur den Server-Namen noch die IP. der PC auf dem sich die DB befindet heißt "MaddinPC". Warum funktioniert die Verbindung nicht, wenn ich nur den PC-Namen angebe oder nur die IP-Adresse als Wert für Server?

Wie der Wert für Server aussehen, wenn ich den SQL-Server remote von einem anderen Rechner aus erreichen will? ISt es da nicht besser die IP-Adresse anzugeben?
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!!
==============================
private Nachricht | Beiträge des Benutzers
michlG
myCSharp.de - Experte

Avatar #avatar-2909.png


Dabei seit:
Beiträge: 3652
Herkunft: Naturns - Südtirol - Italien

beantworten | zitieren | melden

Hi,
Zitat
Warum funktioniert die Verbindung nicht, wenn ich nur den PC-Namen angebe oder nur die IP-Adresse als Wert für Server?
Die Syntax für Server lautet: SERVER \\ SQL SERVER INSTANZ
Die Instanz ist in diesem Fall SQLEXPRESS.
Das ist notwendig, da jemand ja auch mehrere Server auf einen Rechner installiert haben könnte.
Zitat
Wie der Wert für Server aussehen, wenn ich den SQL-Server remote von einem anderen Rechner aus erreichen will? ISt es da nicht besser die IP-Adresse anzugeben?
Der sieht da gleich aus. Ich würde empfehlen den Namen zu verwenden, da sich die IP-Adresse ja ändern kann.

mfg
Michael
private Nachricht | Beiträge des Benutzers
Maddinel
myCSharp.de - Member

Avatar #avatar-3180.gif


Dabei seit:
Beiträge: 1378
Herkunft: Deutschland

Themenstarter:

beantworten | zitieren | melden

Danke für die schnelle Antwort.

Aber müsste dann nicht auch Server=192.168.xxx.xxx\\SQLEXPRESS funktionieren? Komischerweise geht das aber nicht.
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!!
==============================
private Nachricht | Beiträge des Benutzers
Maddinel
myCSharp.de - Member

Avatar #avatar-3180.gif


Dabei seit:
Beiträge: 1378
Herkunft: Deutschland

Themenstarter:

beantworten | zitieren | melden

Nagut, ist aber logisch. Die Frage ist jetzt nurnoch warum ich von einem anderen Rechner remote nicht auf die DB auf meinem zugreifen kann sondern nur lokal.
Ich habe den Remotezugriff bereits im SQL-Server eingestellt.
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!!
==============================
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10076

beantworten | zitieren | melden

Firewall?
private Nachricht | Beiträge des Benutzers
Maddinel
myCSharp.de - Member

Avatar #avatar-3180.gif


Dabei seit:
Beiträge: 1378
Herkunft: Deutschland

Themenstarter:

beantworten | zitieren | melden

Die hab ich komplett deaktiviert, bringt aber keine Änderung. Ich erhalte immer die folgende Meldung:
An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!!
==============================
private Nachricht | Beiträge des Benutzers
michlG
myCSharp.de - Experte

Avatar #avatar-2909.png


Dabei seit:
Beiträge: 3652
Herkunft: Naturns - Südtirol - Italien

beantworten | zitieren | melden

Hallo,

wenn ich mich nicht irre, dann kriegst du diese Fehlermeldung, weil dein SqlServer keine RemoteVerbindung zulässt. Unter den Einstellungen vom SqlServer kannst du einstellen ob er diese zulassen soll (weis aber auch nicht mehr genau wo).

Schaue dir mal das hier an http://support.microsoft.com/kb/914277 hier ist genau beschrieben wie man vorgehen muss.

mfg
Michael
private Nachricht | Beiträge des Benutzers
Maddinel
myCSharp.de - Member

Avatar #avatar-3180.gif


Dabei seit:
Beiträge: 1378
Herkunft: Deutschland

Themenstarter:

beantworten | zitieren | melden

Ja ganz genau, aber das ist auch das Problem. Ich habe die Remoteverbindung bereits auf dem Server aktiviert. Den Rechner habe ich seit dem auch neu gestartet, was einen Neustart des SQL-Servers eigentlich bewirken müsste, oder?
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!!
==============================
private Nachricht | Beiträge des Benutzers
Maddinel
myCSharp.de - Member

Avatar #avatar-3180.gif


Dabei seit:
Beiträge: 1378
Herkunft: Deutschland

Themenstarter:

beantworten | zitieren | melden

Die Verbindung vom anderen PC aus ging jetzt. Der Fehler war, dass der SQL Server Browser deaktivert war. Diesen kann man aktivieren über Start > Programme > Microsoft SQL Server 2005 > Konfigurationstools > SQL Server Oberflächenkonfiguration
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!!
==============================
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10076

beantworten | zitieren | melden

Den benötigst du "nur", wenn du den Port nicht selber angibst.

Ohne ( sollte man aus sicherheitsgründen aus lassen ) einfach ":1433" hinter
Servernamen\Instanz angeben ( ist der std. Port ).
private Nachricht | Beiträge des Benutzers
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 520
Herkunft: Henstedt-Ulzburg

beantworten | zitieren | melden

Hallo,
Ich habe das gleiche Problem. Nur trotz allen Beiträgen kann ich das Problem nicht lösen.
Ich hab die Remoteverbindungen zugelassen, usw.
Mein Programm sieht so aus:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SqlClient
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Sql-Verbindung";

            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection();
            Console.WriteLine("ConnectionString wird zugeteilt...");
            con.ConnectionString = "Server=SERVER \\ SQL SERVER SQLEXPRESS:1433;Data Source=C:\\Users\\Markus\\Documents\\TestDatabase.sdf";
            Console.WriteLine("ConnectionString zugeteilt");
            try
            {
                Console.WriteLine("Sql-Verbindung wird hergestellt...");
                con.Open();
                Console.WriteLine("Verbindung hergestellt!");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Sql-Verbindung konnte nicht hergestellt werden:");
                Console.WriteLine(ex.Message);
                Console.WriteLine("Auslöser:");
                Console.WriteLine(ex.Source);
                Console.WriteLine("Chronik:");
                Console.WriteLine(ex.StackTrace);
            }

            Console.ReadLine();
        }
    }
}

Ich hab Windows Vista Buisness SP1, SqlServer2005 Express, Visual CSharp 2008 und .NET Framework 3.5.
Kann mir jemand den Fehler vielleicht erklären?

Danke im Voraus,
markus111
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10076

beantworten | zitieren | melden

Per Remoteverbindung ( und schon in einer SHare ) kannst Du nicht mit echten
Dateinamen arbeiten, sondern musst den im Server registrierten Namen der DB benutzen.
private Nachricht | Beiträge des Benutzers