2013-09-04 16 views
30

Wenn ich zu SQL Server zu verbinden versuchte, mit dem folgenden CodeVerbindung zu SQL Server mit Windows-Authentifizierung

 SqlConnection con = new SqlConnection("Server= localhost, Authentication=Windows Authentication, Database= employeedetails"); 
    con.Open(); 
    SqlCommand cmd; 
    string s = "delete employee where empid=103"; 

ich die folgende Fehlermeldung erhalten:

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: SQL Network Interfaces, error: 25 - Connection string is not valid)

+0

SQL ist nicht konfiguriert folgen Remote-Verbindungen zu ermöglichen. – Greg

+0

es ist auf dem localhost, nicht viel Remote darüber. – ps2goat

+0

Guter Punkt. Verbindungszeichenfolge ist falsch. – Greg

Antwort

31

Eine Verbindungszeichenfolge für SQL Server sollte sehen eher aus: "Server= localhost; Database= employeedetails; Integrated Security=True;"

Wenn Sie eine benannte Instanz von SQL Server haben, müssen Sie auch das hinzufügen, z. B. "Server=localhost\sqlexpress"

+0

Anmeldung fehlgeschlagen für Benutzer 'IIS APPPOOL \ ASP.NET V4 .0 '. Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für weitere Informationen über den Fehler und wo es aus dem Code stammt. Ausnahmedetails: System.Data.SqlClient.SqlException: Anmeldung fehlgeschlagen für Benutzer 'IIS APPPOOL \ ASP.NET V4.0'. Quellfehler: Zeile 18: { Zeile 19: SqlConnection con = new SqlConnection ("Server = localhost; Database = EmployeeDetails; Integrated Security = True"); Zeile 20: con.Open(); –

+0

Ihr Benutzername sieht nicht korrekt aus. Ihr Computername ist "IIS APPPOOL"? und Ihr Benutzername ist "ASP.NET V4.0"? Bitte posten Sie Ihre Verbindungszeichenfolge mit dem tatsächlichen Benutzernamen und dem Passwort, die durch 'xxxx' ersetzt werden, um den Wert zu maskieren. Dann können wir Ihnen besser helfen. – ps2goat

+0

Der Anwendungspool Ihrer Website muss von einem Konto aus funktionieren, das als Login auf dem SQL Server hinzugefügt wurde und über einige Berechtigungen für Ihre Datenbank verfügt. Anwendungspool in den erweiterten Einstellungen hat die Option "Identität" - hier sollten Sie Ihr Konto angeben. Danach muss Ihre Verbindung mit "Integrated Security = True" funktionieren. –

7

Auschecken www.connectionstrings.com für eine Tonne von Proben der richtigen Verbindungszeichenfolgen.

In Ihrem Fall, verwenden Sie diese:

Server=localhost;Database=employeedetails;Integrated Security=SSPI 

Update: offensichtlich, das Dienstkonto verwendet ASP.NET Web-Anwendungen zu laufen haben keinen Zugriff auf SQL Server, und die Beurteilung von dieser Fehlermeldung , verwenden Sie wahrscheinlich "anonyme Authentifizierung" auf Ihrer Website.

Sie müssen entweder dieses Konto IIS APPPOOL\ASP.NET V4.0 als SQL Server-Login hinzufügen und geben Sie diesen Login-Zugriff auf Ihre Datenbank, oder Sie müssen zur Verwendung von "Windows-Authentifizierung" auf Ihrer ASP.NET-Website, so dass das aufrufende Windows Das Konto wird an SQL Server übergeben und als Anmeldung bei SQL Server verwendet.

+0

Anmeldung fehlgeschlagen für Benutzer 'IIS APPPOOL \ ASP.NET V4.0'. Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für weitere Informationen über den Fehler und wo es aus dem Code stammt. Ausnahmedetails: System.Data.SqlClient.SqlException: Anmeldung fehlgeschlagen für Benutzer 'IIS APPPOOL \ ASP.NET V4.0'. Quellfehler: Zeile 18: {Zeile 19: SqlConnection con = neue SqlConnection ("Server = localhost; Datenbank = Mitarbeiterdetails; integrierte Sicherheit = True"); Zeile 20: con.Open() –

+0

Wenn eine Site die Windows-Authentifizierung verwendet und sich 'Integrated Security = SSPI' im connectionString befindet, wie genau würden Sie das Windows-Konto an den SQL-Server weitergeben? –

10

Ihre Verbindungszeichenfolge ist falsch

<connectionStrings> 
    <add name="ConnStringDb1" connectionString="Data Source=localhost\SQLSERVER;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
-3

Verwenden Sie diesen Code

Data Source=.;Initial Catalog=master;Integrated Security=True 
0

Sie haben eine connectionString in Ihrer Datei Web.config als

<connectionStrings> 
    <add name="ASPNETConnectionString" connectionString="Data Source=SONU\SA;Initial Catalog=ASPNET;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Dann schreiben Sie Ihre SQL hinzufügen Verbindungszeichenfolge wie folgt:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 


public partial class WebPages_database : System.Web.UI.Page 
{ 
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ASPNETConnectionString"].ToString()); 
    SqlDataAdapter da; 
    DataSet ds; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void btnAdmnNumber_Click(object sender, EventArgs e) 
    { 
     string qry = "select * from Table"; 
     da = new SqlDataAdapter(qry, con); 
     ds = new DataSet(); 
     da.Fill(ds); 

     GridView1.DataSource = ds; 
     GridView1.DataBind(); 
    } 
} 

Für weitere Informationen wenden Sie sich bitte den Link How To:Connect to SQl with windows Authentication

SQL Server with windows authentication