Connexion aux bases de données dans ASP.NET

Mise à jour : novembre 2007

ASP.NET vous permet de vous connecter de multiples façons à des bases de données. Un moyen simple consiste à utiliser des contrôles de source de données. Ceux-ci vous permettent d'encapsuler l'accès aux données dans un contrôle que vous pouvez configurer avec des informations de connexion et de requête. Vous pouvez aussi écrire le code vous permettant d'accéder vous-même aux données à l'aide de classes ADO.NET ou de requêtes LINQ.

Pour vous connecter à une base de données à l'aide d'un contrôle de source de données, procédez comme suit :

  • Déterminez le type de contrôle de source de données dont vous avez besoin. Par exemple, le contrôle LinqDataSource vous permet d'utiliser la syntaxe LINQ dans le code de balisage pour accéder aux données de plusieurs sources de données. Le contrôle ObjectDataSource utilise un objet métier de couche intermédiaire pour extraire et modifier des données. Le contrôle SqlDataSource vous permet de fournir une connexion à une source de données et des instructions SQL pour extraire et modifier des données.

  • Si vous utilisez le contrôle LinqDataSource, créez des classes pour représenter la base de données et les tables. Vous pouvez connecter le contrôle LinqDataSource à ces classes. Pour plus d'informations, consultez Comment : créer des classes LINQ to SQL dans une application Web.

  • Si vous utilisez le contrôle SqlDataSource, déterminez le fournisseur requis. Un fournisseur est une classe qui communique avec un type spécifique de base de données. La valeur par défaut est le fournisseur System.Data.SqlClient, qui se connecte à une base de données Microsoft SQL Server.

  • Ajoutez le contrôle de source de données à la page et définissez ses propriétés d'accès aux données. Par exemple, le contrôle ObjectDataSource requiert le type de l'objet métier de couche intermédiaire ainsi qu'une ou plusieurs méthodes servant à interroger ou modifier des données. Le contrôle SqlDataSource requiert une chaîne de connexion qui inclut les informations dont le fournisseur a besoin pour ouvrir une base de données spécifique, ainsi qu'une ou plusieurs commandes SQL pour interroger ou modifier des données. Le contrôle LinqDataSource requiert le nom de la classe qui représente la base de données et le nom de la classe qui représente la table à partir de laquelle vous accédez aux données.

    Vous pouvez spécifier les informations de fournisseur et de connexion comme étant des propriétés spécifiques au contrôle SqlDataSource, ou définir de façon centralisée les informations de fournisseur et de chaîne de connexion dans le fichier Web.config de l'application Web. Stocker les informations de connexion dans le fichier Web.config vous permet de les réutiliser avec plusieurs instances du contrôle de données. Cela vous aide également à sécuriser les informations de chaîne de connexion à l'aide de listes de contrôle d'accès (ACL) et de procédures de chiffrement. Pour plus d'informations, consultez « Chaînes de connexion », plus loin dans cette rubrique.

Un fournisseur ADO.NET est une classe qui peut communiquer avec un type spécifique de base de données ou de magasin de données. Par exemple, un fournisseur peut être capable de communiquer avec une base de données SQL Server, tandis qu'un autre pourra communiquer avec une base de données Oracle. Le .NET Framework est livré avec les fournisseurs suivants :

  • Le fournisseur de données .NET Framework pour SQL Server dans l'espace de noms System.Data.SqlClient. Il s'agit du fournisseur par défaut pour le contrôle SqlDataSource ; si vous vous connectez à une base de données SQL Server à l'aide du contrôle SqlDataSource, vous n'avez pas besoin de spécifier explicitement de fournisseur.

  • Le fournisseur de données .NET Framework pour OLE DB dans l'espace de noms System.Data.OleDb.

  • Le fournisseur de données .NET Framework pour ODBC dans l'espace de noms System.Data.Odbc.

  • Le fournisseur de données .NET Framework pour Oracle dans l'espace de noms System.Data.OracleClient.

Vous pouvez spécifier le fournisseur dans le fichier Web.config comme faisant partie d'une chaîne de connexion, ou comme une propriété d'un contrôle de source de données dans une page.

Une chaîne de connexion fournit les informations nécessaires à un fournisseur pour communiquer avec une base de données spécifique. Vous pouvez stocker une chaîne de connexion dans le fichier Web.config et référencer l'entrée de configuration dans un contrôle de source de données.

Selon le fournisseur, une chaîne de connexion fournit en général le serveur ou l'emplacement du serveur de base de données, la base de données à utiliser et les informations d'authentification. Tout comme pour le fournisseur, vous pouvez indiquer la chaîne de connexion dans le fichier Web.config ou en faire une propriété d'un contrôle de source de données dans une page.

Stockage de chaînes de connexion

Il est conseillé de placer les chaînes de connexion dans le fichier Web.config. Dans l'élément <configuration>, élément, vous pouvez créer un élément enfant nommé <connectionStrings> et y placer les chaînes de connexion, tel qu'illustré dans cet exemple :

<connectionStrings>
  <add name="NorthindConnectionString" 
   connectionString=" Server=MyDataServer;Integrated Security=SSPI;Database=Northwind;"
   providerName="System.Data.SqlClient" />
</connectionStrings>

Dans cet exemple, le nom et le fournisseur sont tous deux fournis. Tous les contrôles de source de données de toutes les pages de l'application peuvent référencer cette entrée de chaîne de connexion. Un des avantages de stocker les informations de chaîne de connexion dans le fichier Web.config est de pouvoir facilement modifier le nom du serveur, la base de données ou les informations d'authentification sans modifier les pages Web elles-mêmes. En outre, vous pouvez sécuriser la chaîne de connexion grâce au chiffrement. Pour plus d'informations, consultez Comment : sécuriser des chaînes de connexion lors de l'utilisation de contrôles de source de données.

Les contrôles de source de données fournissent des services de données, notamment la récupération et la modification de données susceptibles d'être utilisées par d'autres contrôles serveur Web liés aux données, tels que les contrôles GridView, FormView, ListView et DetailsView. Un contrôle de source de données, tel que SqlDataSource encapsule tous les éléments qui sont requis pour se connecter à une base de données (fournisseur, chaîne de connexion et requête) afin de récupérer ou de manipuler des données. Par exemple, le contrôle SqlDataSource suivant est configuré pour se connecter à une base de données et lire tous les enregistrements de la table Customers :

<asp:SqlDataSource ID="SqlDataSource1" Runat="server" 
  SelectCommand="Select * from Customers"
  ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" />

Dans cet exemple, le nom du fournisseur et la chaîne de connexion sont stockés dans le fichier Web.config, tandis que la requête SQL est configurée comme une propriété du contrôle de source de données.

L'exemple suivant illustre un contrôle LinqDataSource qui se connecte à la table Products de la base de données Northwind. Avant de pouvoir exécuter ce code, vous devez créer des classes de données pour la base de données Northwind.

<asp:LinqDataSource 
  ContextTypeName="NorthwindDataContext" 
  TableName="Products"
  ID="LinqDataSource1"  
  runat="server">
</asp:LinqDataSource>

S'il n'est pas pratique d'utiliser des contrôles de source de données dans votre application, vous pouvez vous-même coder l'accès aux données à l'aide de classes ADO.NET. Vous pouvez coder vous-même l'accès aux données si vous avez des besoins complexes non satisfaits par l'utilisation de contrôles de source de données, ou si vous souhaitez créer un composant distinct qui exécute l'accès aux données en dehors de vos pages Web. Pour plus d'informations, consultez ADO.NET.

Vous pouvez inclure des requêtes LINQ dans une page Web sans utiliser le contrôle LinqDataSource. Pour plus d'informations, consultez Utilisation de LINQ avec ASP.NET.

Ajouts de la communauté

AJOUTER
Afficher: