2013-09-04 11 views
30

Quando stavo cercando di connettersi a SQL Server utilizzando il seguente codiceConnessione a SQL Server utilizzando l'autenticazione di Windows

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

ottengo il seguente errore:

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 non è configurato per consentire le connessioni remote. – Greg

+0

è localhost, non molto remoto. – ps2goat

+0

Buon punto. La stringa di connessione è sbagliata. – Greg

risposta

31

Una stringa di connessione per SQL Server dovrebbe assomiglia più: "Server= localhost; Database= employeedetails; Integrated Security=True;"

Se si dispone di un'istanza denominata di SQL Server, è necessario aggiungere anche questo, ad esempio, "Server=localhost\sqlexpress"

+0

Accesso non riuscito per l'utente 'IIS AppPool \ ASP.NET V4 esempio 0,0' . Descrizione: si è verificata un'eccezione non gestita durante l'esecuzione della richiesta Web corrente. Si prega di rivedere la traccia dello stack per ulteriori informazioni sull'errore e sulla sua origine nel codice. Dettagli eccezione: System.Data.SqlClient.SqlException: Accesso non riuscito per l'utente 'IIS AppPool \ ASP.NET V4.0'.Errore Fonte: Linea 18: { Linea 19: SqlConnection con = new SqlConnection ("Server = localhost; database = employeedetails; Integrated Security = True"); Riga 20: con.Open(); –

+0

il tuo nome utente non sembra corretto. il nome del tuo computer è 'IIS APPPOOL'? e il tuo nome utente è 'ASP.NET V4.0'? Si prega di inviare la stringa di connessione con il nome utente e la password effettivi sostituiti con 'xxxx' per mascherare il valore. Allora possiamo aiutarti meglio. – ps2goat

+0

Il pool di applicazioni del sito Web deve funzionare da un account che è stato aggiunto come accesso su SQL Server e dispone di alcune autorizzazioni sul database. Il pool di applicazioni in Impostazioni avanzate ha l'opzione "Identità" - qui devi specificare il tuo account. Successivamente la connessione con "Integrated Security = True" deve funzionare correttamente. –

7

Partenza www.connectionstrings.com per una tonnellata di campioni di stringhe di connessione corrette.

Nel tuo caso, utilizzare questo:

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

Aggiornamento: ovviamente, l'account di servizio utilizzato per eseguire ASP.NET applicazioni web non ha accesso a SQL Server, e, a giudicare da quel messaggio di errore , probabilmente stai usando "autenticazione anonima" sul tuo sito web.

Quindi è necessario aggiungere questo account IIS APPPOOL\ASP.NET V4.0 come account di accesso di SQL Server e fornire tale accesso di accesso al database oppure è necessario passare all'utilizzo di "Autenticazione di Windows" sul sito Web ASP.NET in modo che Windows chiamante l'account verrà passato a SQL Server e utilizzato come accesso su SQL Server.

+0

Accesso non riuscito per l'utente 'IIS APPPOOL \ ASP.NET V4.0'. Descrizione: si è verificata un'eccezione non gestita durante l'esecuzione della richiesta Web corrente. Si prega di rivedere la traccia dello stack per ulteriori informazioni sull'errore e sulla sua origine nel codice. Dettagli eccezione: System.Data.SqlClient.SqlException: accesso non riuscito per l'utente 'IIS APPPOOL \ ASP.NET V4.0'. Errore di origine: Riga 18: {Riga 19: SqlConnection con = new SqlConnection ("Server = localhost; Database = employeedetails; Integrated Security = True"); Riga 20: con.Open() –

+0

Se un sito utilizza l'autenticazione di Windows e 'Integrated Security = SSPI' si trova in connectionString, con quale precisione farai passare l'account di Windows al server SQL? –

10

la stringa di connessione è sbagliato

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

uso di questo codice

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

È necessario aggiungere un connectionString all'interno del file web.config come

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

quindi scrivere la SQL stringa di connessione come di seguito:

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(); 
    } 
} 

Per ulteriori informazioni si prega di seguire questo link How To:Connect to SQl with windows Authentication

SQL Server with windows authentication

Problemi correlati