Istituzione di una connessione
Si applica a: .NET Framework .NET .NET Standard
Per eseguire la connessione a Microsoft SQL Server, utilizzare l'oggetto SqlConnection del provider di dati Microsoft SqlClient per SQL Server. Per informazioni sulla sicurezza dell'archiviazione e del recupero delle stringhe di connessione, vedere Protezione delle informazioni di connessione.
Chiusura di connessioni
Al termine dell'utilizzo, chiudere sempre la connessione in modo che possa essere restituita al pool. Il blocco Using
in Visual Basic o C# elimina automaticamente la connessione quando il codice esce dal blocco, anche in caso di eccezione non gestita. Per altre informazioni vedere Istruzione using e Istruzione Using.
È anche possibile usare i metodi Close
o Dispose
dell'oggetto Connessione. Le connessioni che non vengono chiuse in modo esplicito potrebbero non essere aggiunte o restituite al pool. Ad esempio, una connessione che esce dall'ambito ma non viene chiusa in modo esplicito verrà restituita al pool di connessioni solo se è stata raggiunta la dimensione massima del pool e la connessione è ancora valida.
Nota
Non chiamare Close
o Dispose
su una Connessione, un DataReader o qualsiasi altro oggetto gestito nel metodo Finalize
della classe. Nei finalizzatori rilasciare solo le risorse non gestite che la classe controlla direttamente. Se nella classe non sono presenti risorse non gestite, non includere un metodo Finalize
nella relativa definizione della classe. Per altre informazioni, vedere Garbage Collection.
Nota
Nel server non vengono generati eventi di accesso e di disconnessione quando una connessione viene recuperata dal o restituita al pool di connessioni, in quanto la connessione non viene effettivamente chiusa quando viene restituita al pool di connessioni. Per altre informazioni, vedere Pool di connessioni SQL Server (ADO.NET).
Connessione a SQL Server
Per informazioni sui nomi e sui valori validi del formato della stringa, vedere la proprietà ConnectionString dell'oggetto SqlConnection. È anche possibile usare la classe SqlConnectionStringBuilder per creare stringhe di connessione sintatticamente valide in fase di esecuzione. Per altre informazioni, vedere Compilatori di stringhe di connessione.
Nel codice di esempio seguente viene descritta la procedura di creazione e di apertura di una connessione a un database SQL Server.
using Microsoft.Data.SqlClient;
class Program1
{
static void Main()
{
string s = GetConnectionString();
OpenSqlConnection(s);
Console.ReadLine();
}
private static void OpenSqlConnection(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
Console.WriteLine("State: {0}", connection.State);
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file, using the
// System.Configuration.ConfigurationSettings.AppSettings property
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI;";
}
}
Sicurezza integrata e ASP.NET
La sicurezza integrata di SQL Server, nota anche come connessioni attendibili, consente di garantire la protezione quando ci si connette a SQL Server perché non espone un ID utente e una password nella stringa di connessione ed è il metodo consigliato per autenticare una connessione. La sicurezza integrata usa l'identità di sicurezza corrente, o token, del processo in esecuzione. Per le applicazioni desktop, questa identità è in genere l'identità dell'utente attualmente connesso.
L'identità di sicurezza delle applicazioni ASP.NET può essere impostata su diverse opzioni. Per altre informazioni sull'identità di sicurezza usata da un'applicazione ASP.NET al momento della connessione a SQL Server, vedere ASP.NET Impersonation, ASP.NET Authentication e Come fare: Accedere a SQL Server utilizzando la sicurezza integrata di Windows.