Laden...

SQL Connection läuft auf einem Server, auf dem anderen nicht

Erstellt von stb_abe vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.223 Views
S
stb_abe Themenstarter:in
11 Beiträge seit 2010
vor 5 Jahren
SQL Connection läuft auf einem Server, auf dem anderen nicht

Leider habe ich das Problem das meine Applikation die bereits auf einer anderen Maschine läuft auf ein anderen Maschine nicht mehr läuft.

Mittels SQL Management Studio können wir uns auf die Datenbank verbinden.
Mit der C#Applikation happert es leider nun ein wenig.

Wie es aussieht, haben wir ein Problem mit einer SQL Server Version.

Auf der Maschine ist folgender SQL Server installiert: Microsoft Server 2017 (SQL Server 14.0.1000)

Verweis System.Data = v4.0.30319


using System.Data.SqlClient;

        public void Connect()
        {
            if (mConnection == null)
            {
                try
                {
                    //Datenverbindung zu SQL Server aufbauen
                    mConnection = new SqlConnection();
                    mConnection.ConnectionString = "Data Source = CP-3A12CC; User Id=STB;   
                   Password=xxxx; Initial Catalog=BPS";
                    mConnection.Open();

                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error Communication: " + ex.Message, "Error");
                }
            }
        }

Der Fehler ist auf dem Bild sehr gut ersichtlich. Die Kommunikation wird somit gleich abgebrochen.

Hat jemand anders auch dieses Problem? Worin könnte das Problem liegen?

T
2.219 Beiträge seit 2008
vor 5 Jahren

Dir ist klar, dass deine Verbindung an der Stelle nicht offen ist und deshalb auch keine Server Version bekannt sein kann oder?

Anbei hat SqlConnection auch einen Konstruktor um den Connection String zu übergeben.
Dann kannst du mit Open die Vervindung direkt öffnen und bekommst auch die Server Version bei offener Verbindung.

Link:
https://docs.microsoft.com/de-de/dotnet/api/system.data.sqlclient.sqlconnection?view=netframework-4.7.2

https://docs.microsoft.com/de-de/dotnet/api/system.data.sqlclient.sqlconnection.serverversion?view=netframework-4.7.2

Im zweiten Link wird auch die InvalidException beschrieben.

Nachtrag:
Bitte poste auch die Exception die tatsächlich geworfen wird.
Im aktuellen Code zeigst du nur eine Stelle im Debugger, der Code selbst dürfte aber nur bei Fehlern beim Verbindungsaufbau knallen.
Aber dazu braucht es die richtige Meldung!

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

S
25 Beiträge seit 2014
vor 5 Jahren

Hi,

ich bin mir nicht 100% sicher aber musst du nicht bei dem Connection String die Adresse mit ggf. der Instanz angeben. Du sagst ja das mehrere auf mit der Anwendung auf die selbe Datenbank zugreifen sollen, sprich die Datenbank ist nich Lokal auf dem Rechner auf dem die Anwendung läuft. Ich kenne es halt von OLEDB das man in dem Connectionstring den Parameterserver mit der IPv4\Instanz angibt falls keine Seperate Innstanz läuft reicht auch die IP versuchs mal damit.

16.807 Beiträge seit 2008
vor 5 Jahren

Soier, in diesem Fall dürfte das aber so sein, wie es T-Virus erklärt hat.
Da die Verbindung zum Server noch gar nicht geöffnet ist (Er ist laut Debugger in Zeile 27; geöffnet wird aber erst in Zeile 28), kann man auch nicht die Serverversion auslesen - daher auch entsprechender Fehler im Screenshot.