Établir une connexion
S'applique à : .NET Framework .NET .NET Standard
Pour vous connecter à Microsoft SQL Server, utilisez l'objet SqlConnection du Fournisseur de données Microsoft SqlClient pour SQL Server. Pour stocker et extraire des chaînes de connexion en toute sécurité, consultez Protection des informations de connexion.
Fermeture de connexions
Nous vous recommandons de toujours fermer la connexion lorsque vous avez fini de l'utiliser, de façon à ce qu'elle puisse être retournée au pool. Le bloc Using
dans Visual Basic ou C# supprime automatiquement la connexion lorsque le code quitte le bloc, même dans le cas d'une exception non traitée. Pour plus d'informations, consultez Instruction using et Instruction Using.
Vous pouvez également utiliser les méthodes Close
ou Dispose
de l’objet de connexion. Les connexions qui ne sont pas explicitement fermées risquent de ne pas être ajoutées ni retournées au pool. Par exemple, une connexion devenue hors de portée mais qui n'a pas été explicitement fermée sera retournée au pool de connexion seulement si la taille maximale de celui-ci a été atteinte et si la connexion est toujours valide.
Notes
N'appelez pas Close
ni Dispose
sur un objet managé de type Connexion, DataReader ou autre dans la méthode Finalize
de votre classe. Dans un finaliseur, libérez seulement les ressources non managées que votre classe possède directement. Si votre classe ne possède pas de ressource non managée, n'incluez pas une méthode Finalize
dans la définition de classe. Pour plus d’informations, consultez Nettoyage de la mémoire.
Notes
Les événements de connexion et de déconnexion ne seront pas déclenchés sur le serveur si une connexion est récupérée depuis le pool de connexions ou qu’elle est retournée au pool, car elle n’est pas réellement fermée lorsqu’elle est retournée au pool. Pour plus d’informations, consultez Regroupement de connexions SQL Server (ADO.NET).
Connexion à SQL Server
Pour obtenir les noms et les valeurs de format de chaîne valides, voir la propriété ConnectionString de l'objet SqlConnection. Vous pouvez également utiliser la classe SqlConnectionStringBuilder pour créer des chaînes de connexion valides du point de vue de la syntaxe au moment de l'exécution. Pour plus d’informations, consultez Builders de chaînes de connexion.
L'exemple de code suivant illustre la création et l'ouverture d'une connexion à une base de données 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;";
}
}
Sécurité intégrée et ASP.NET
La sécurité intégrée SQL Server (également appelée « connexions approuvées ») permet de fournir une protection lors de la connexion à SQL Server car elle n’expose pas d’ID utilisateur et de mot de passe dans la chaîne de connexion et constitue la méthode recommandée pour l’authentification d’une connexion. La sécurité intégrée utilise l'identité de sécurité active, ou jeton, du processus en cours d'exécution. Pour les applications de bureau, cette identité est généralement l’identité de l’utilisateur actuellement connecté.
Dans les applications ASP.NET, l'identité de sécurité peut être définie à l'aide d'une option parmi plusieurs options différentes. Pour mieux comprendre l'identité de sécurité qu'une application ASP.NET utilise lorsqu'elle se connecte à SQL Server, consultez Emprunt d’identité ASP.NET, Authentification ASP.NET et Procédure : Accéder à SQL Server à l'aide de la sécurité intégrée de Windows.