2016-05-21 7 views
0

Hallo, ich versuche, etwas ADO.NET zu lernen. Ich arbeite in Visual Studio 2015 mit C#. Ich habe eine Datenbank mit einigen Tabellen erstellt, die auf meinem lokalen Rechner gespeichert sind. Hier ist mein C# -Code versucht, auf die Datenbank zu verbinden:Interagieren Sie mit Datenbanken von ADO.NET

string constring = "Data Source=.; Database = CarShop;Integrated Security=SSPI"; 
SqlConnection con = new SqlConnection(constring); 
con.Open();    

ein Fehler ausgelöst wird, wenn ich versuche, die SqlConnection zu öffnen sagen dies:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll Additional information: 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)

Bisher habe ich tryied die Verbindungszeichenfolge ändern um so etwas wie:

string constring = "Data Source=192.168.0.101; Database = CarShop;Integrated Security=True;Connect Timeout=30"; 

oder

constring = "Data Source=(LocalDB)/MSSQLLocalDB;AttachDbFilename=D:/Proiecte/Visual Studio/C#/DataBases/DataBaseTut2/DataBaseTut2/CarShop.mdf;Integrated Security=True;Connect Timeout=30";     

Aber beide haben nicht funktioniert.

+0

prüfen dies: http://stackoverflow.com/questions/15918198/error-40-could-not-open-a-connection -to-sql-server und dies: http://blog.sqlauthority.com/2007/04/23/sql-server-fix-error-40-could-not-open-a-connection-to-sql-server/ – Berkay

+0

Die 'Datenquelle' sollte wahrscheinlich so aussehen:' Datenquelle = (LocalDB) \ v11.0'. –

+0

Bitte präzisieren. Verwenden Sie MySql oder Sql Server? Die zwei sind unterschiedliche Produkte und erfordern unterschiedliche Klassen, um sich zu verbinden. – Steve

Antwort

0

Versuchen Sie dieses:

Data Source=.; 
Initial Catalog=database name; 
Integrated Security=True; 
Max Pool Size=2048; 
Pooling=true; 
+0

Dies hat nicht funktioniert –

+0

Was ist Ihre Verbindungszeichenfolge? –

-1

Stellen Sie sicher, dass TCP/IP ist in SQL-Server-Manager aktiviert. Wenn nicht, dann können Sie nicht mit ihm kommunizieren. Überprüfen Sie außerdem, ob Sie eine benannte Instanz bereitstellen müssen. Z.B. localhost/sqlexpress

0
  1. Ich würde http://www.connectionstrings.com/sql-server/ besuchen Sie die richtigen Verbindungs ​​String-Instanz für einen ADO.net SQL Server-Verbindung zu erhalten. Ich würde vorschlagen Standard Security oder Trusted Connection aus den Beispielen.

  2. ich es in einer Konfigurationsdatei speichern wäre es app.config oder web.config

  3. Wenn eine Verbindung immer die Verwendung von() Anweisung Erstellung richtig der Verbindung zu entsorgen, wenn es außerhalb des Gültigkeitsbereiches ist .

Deshalb:

using(SqlConnection sqlconn = new SqlConnection(  
ConfigurationManager.ConnectionStrings["defaultconnection"].ConnectionString)) 
{ 
    sqlconn.Open(); 

    using(SqlCommand sqlcommand = new SqlCommand("Select field1 FROM 
    Table",sqlconn)) 
    { 
    //code here 
    } 
} 
  1. Stellen Sie sicher, dass die Datenbank auf dem localhost (.) größte Verbindung aufnehmen kann und nicht eher Standardsicherheit verwenden - SQL-Authentifizierung - durch den Benutzer spezifiziert Anmeldeinformationen ie "User Id=username;Password=pwd;"
0

Ich fand es heraus. Für diejenigen, die dieses Problem haben. Sie können die Verbindungszeichenfolge abrufen, indem Sie im Server-Explorer mit der rechten Maustaste auf Ihre Datenbank und dann auf Eigenschaften klicken. Wenn Sie dies tun, finden Sie die Verbindungszeichenfolge im Eigenschaftenfenster. Kopieren Sie diese Zeichenfolge aber, wenn Sie es in Ihrem Code verwenden verwenden Sie es wie folgt aus:

@"whatever your Connection String is"