Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Liaison à des bases de données

Les applications Web affichent fréquemment des données provenant d'une base de données relationnelle telle que Microsoft SQL Server, Microsoft Access, Oracle ou un magasin de données OLEDB ou ODBC. Pour simplifier la liaison d'un contrôle aux données d'une base de données, ASP.NET fournit les contrôles LinqDataSource et SqlDataSource.

Le contrôle LinqDataSource vous permet d'utiliser LINQ dans une page Web ASP.NET par un balisage déclaratif afin de récupérer et de modifier des données d'un objet de données. Le contrôle prend en charge la génération automatique des commandes Select, Update, Insert et Delete. Le contrôle prend également en charge les fonctions de tri, de filtrage et de pagination.

Lorsque vous utilisez le contrôle LinqDataSourcepour interagir avec les données d'une bases de données, vous ne connectez pas directement le contrôle LinqDataSource à la base de données. Vous agissez en revanche sur les classes d'entité qui représentent la base de données et les tables. Vous pouvez générer les classes d'entité à l'aide du Concepteur Objet/Relationnel ou en exécutant l'utilitaire SqlMetal.exe. Pour plus d'informations, consultez Concepteur Objet/Relationnel (Concepteur O/R) et SqlMetal.exe (outil de génération de code).

Les classes d'entité que vous créez se trouvent, en général, dans le dossier App_Code de l'application Web. Le Concepteur O/R ou l'utilitaire SqlMetal.exe génère une classe qui représente la base de données et une classe pour chaque table dans la base de données.

Vous connectez le contrôle LinqDataSource à une classe de base de données en donnant à la propriété ContextTypeName le nom de la classe qui représente la base de données. Vous connectez le contrôle LinqDataSource à une table particulière en donnant à la propriété TableName le nom de la classe qui représente la table de données. Par exemple, pour vous connecter à la table Contacts de la base de données AdventureWorks, vous affectez à la propriété ContextTypeName un nom de classe tel que AdventureWorksDataContext (ou le nom que vous spécifiez pour l'objet de base de données, quel qu'il soit). Affectez à la propriété TableName la valeur Contacts.

L'exemple suivant décrit un contrôle LinqDataSource qui récupère les données d'une table appelée Products. Il génère automatiquement des commandes pour prendre en charge l'insertion, la mise à jour et la suppression de données. Un contrôle DetailsView affiche les données et crée des boutons qui permettent aux utilisateurs de modifier les données.


<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    EnableUpdate="true"
    EnableInsert="true"
    EnableDelete="true"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:DetailsView 
    DataKeyNames="ProductID"
    AutoGenerateEditButton="true"
    AutoGenerateDeleteButton="true"
    AutoGenerateInsertButton="true"
    AllowPaging="true"
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:DetailsView>


Pour plus d'informations, consultez Vue d'ensemble du contrôle serveur Web LinqDataSource.

Le contrôle SqlDataSource représente une connexion directe à une base de données dans une application Web. Les contrôles liés aux données tels que les contrôles GridView, DetailsView et FormView peuvent utiliser le contrôle SqlDataSource pour récupérer et modifier automatiquement des données. Vous spécifiez des commandes pour sélectionner, insérer, mettre à jour et supprimer des données au sein du contrôle SqlDataSource et le contrôle exécute automatiquement ces opérations. Vous n'avez pas besoin d'écrire du code (par exemple, du code ADO.NET qui utilise des classes de l'espace de noms System.Data) pour créer une connexion et spécifier des commandes pour interroger et mettre à jour une base de données.

L'exemple de code suivant montre un contrôle GridView lié à un contrôle SqlDataSource afin de récupérer, de mettre à jour et de supprimer des données.


<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="AdventureWorksLTDataClassesDataContext"
    EnableDelete="True" EnableInsert="True" EnableUpdate="True" 
    TableName="SalesOrderDetails">
</asp:LinqDataSource>

<asp:GridView ID="GridView1" runat="server" 
    AutoGenerateColumns="False" 
    DataKeyNames="SalesOrderID,SalesOrderDetailID"
    DataSourceID="LinqDataSource1">
    <Columns>
        <asp:CommandField ShowDeleteButton="True" 
            ShowEditButton="True" />
        <asp:BoundField DataField="SalesOrderID" 
            HeaderText="SalesOrderID" ReadOnly="True"
            SortExpression="SalesOrderID" />
        <asp:BoundField DataField="SalesOrderDetailID" 
            HeaderText="SalesOrderDetailID" InsertVisible="False"
            ReadOnly="True" SortExpression="SalesOrderDetailID" />
        <asp:BoundField DataField="OrderQty" 
            HeaderText="OrderQty" SortExpression="OrderQty" />
        <asp:BoundField DataField="ProductID" 
            HeaderText="ProductID" SortExpression="ProductID" />
        <asp:BoundField DataField="UnitPrice" 
            HeaderText="UnitPrice" SortExpression="UnitPrice" />
        <asp:BoundField DataField="ModifiedDate" 
            HeaderText="ModifiedDate" SortExpression="ModifiedDate" />
    </Columns>
</asp:GridView>


Le contrôle SqlDataSource se connecte directement à une base de données et implémente par conséquent un modèle de données à deux couches. Si vous devez créer une liaison à un objet métier de couche intermédiaire qui effectue la récupération de données et les mises à jour, vous pouvez utiliser le contrôle ObjectDataSource. Pour plus d'informations, consultez Liaison à des objets métier.

Pour plus d'informations sur le contrôle SqlDataSource, consultez Vue d'ensemble du contrôle serveur Web SqlDataSource.

ASP.NET fournit un contrôle AccessDataSource qui simplifie la tâche de connexion à un fichier de base de données Microsoft Access (fichier .mdb). La classe AccessDataSource hérite de la classe SqlDataSource et se connecte automatiquement à un fichier .mdb à l'aide du fournisseur de données du .NET Framework System.Data.OleDb et du fournisseur OLE DB Microsoft.Jet.OLEDB.4.0. Pour se connecter à une base de données Access, il est nécessaire de fournir un chemin d'accès en tant que propriété DataFile. Si ce n'est que le contrôle AccessDataSource se connecte de façon différente à une base de données Microsoft Access, pour le reste, il fonctionne exactement de la même manière que le contrôle SqlDataSource. Pour plus d'informations, consultez Récupération de données à l'aide du contrôle serveur Web AccessDataSource.

Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ