2016-04-02 7 views
1

Ich bin neu in C# und weiß nicht viel!Kann keine Verbindungszeichenfolge in c machen #

Ich habe in C# 2012 eine lokale Datenbank erstellt und möchte eine Verbindung zu ihr herstellen. Ich testete die Verbindung mit seinem Assistenten und es wurde erfolgreich mit der Datenbank verbunden.

Also ich kopierte Verbindungszeichenfolgeadresse zu meinem Code aber nach einigen Sekunden des Laufens habe ich und Ausnahmefehler!

Ich weiß nicht, wo das Problem ist!

Hier ist mein Code:

System.Data.SqlClient.SqlConnection myConnection; 

private void Form1_Load(object sender, EventArgs e) 
{ 
    myConnection = new System.Data.SqlClient.SqlConnection(); 
    myConnection.ConnectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\\Users\\jack\\Documents\\Visual Studio 2012\\Projects\\dictionary\\dictionary\\dictionaryDb.mdf;Integrated Security=True;Connect Timeout=30"; 
    myConnection.Open(); 

    MessageBox.Show("successfully connected!"); 
} 

Dies ist der Ausnahmefehler:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Und meine andere Frage ist: Ist es Unterschiede zwischen SQL Server Express und der lokalen Datenbank in C#?

Danke

Antwort

3

Es scheint, wie Sie ein Backslash \ zwischen (LocalDB) und v11.0 verpassen: wird

myConnection.ConnectionString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\Users\\jack\\Documents\\Visual Studio 2012\\Projects\\dictionary\\dictionary\\dictionaryDb.mdf;Integrated Security=True;Connect Timeout=30"; 

Ein Backslash als Escape-Zeichen betrachten werden, zwei Schrägstriche \\ wird als backslash behandelt werden. Alternative, dies zu tun (mit @) Zeichenfolge Charakter deutlicher zu machen:

myConnection.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\jack\Documents\Visual Studio 2012\Projects\dictionary\dictionary\dictionaryDb.mdf;Integrated Security=True;Connect Timeout=30"; 

Sie auch Ihre connectionString in Ihrem app.config<connectionStrings> <add name="DefautConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\jack\Documents\Visual Studio 2012\Projects\dictionary\dictionary\dictionaryDb.mdf;Integrated Security=True;Connect Timeout=30;" .. und so weiter, sind nicht ungewöhnlich, geben könnten.

+0

oh danke Ian. ich dachte, doppelter Backslash ist nur für die Adresse! – Saeid

+0

es funktioniert jetzt :) ist es der unterschied zwischen lokaler datenbank und sql express? – Saeid

+0

@Said lokale Datenbank bedeutet, dass Ihre Verbindung zum lokalen Computer (dem von Ihnen verwendeten PC) besteht. SQL Express ist der Name der Datenbank, nicht der Rechner, der die Datenbank hostet. Eigentlich ist der vollständige Name "SQL Server Express", der Datenbankname lautet "SQL Server" – Ian