Un contrôle de source de données interagit avec les contrôles liés aux données et masque le processus complexe de liaison de données. Il s'agit d'outils qui fournissent des données aux contrôles liés aux données et prennent en charge l'exécution d'opérations telles que l'insertion, la suppression et la mise à jour.
Chaque contrôle de source de données encapsule un fournisseur de données spécial associé à une base de données, un fichier XML ou une classe personnalisée et permet :
Gérer les connexions
Sélectionner des données
Gérez les aspects de la présentation tels que la pagination, la mise en cache, etc.
Manipuler les données
Il existe de nombreux contrôles de source de données disponibles dans ASP.NET pour obtenir des données à partir d'un serveur SQL, d'un serveur ODBC ou OLE DB, de fichiers XML et d'objets métier.
En fonction du type de données, ces contrôles peuvent être divisés en deux catégories :
Contrôle de source de données en couches
Contrôle de source de données basé sur des tables
Les contrôles de source de données pour les données hiérarchiques sont :
XMLDataSource - Il permet de lier des fichiers et des chaînes XML avec ou sans informations de schéma.
SiteMapDataSource - Il permet de lier un fournisseur qui fournit des informations sur le plan du site.
Les contrôles de source de données utilisés pour les données tabulaires sont :
Contrôle de la source de données | décrire |
---|---|
SQLDataSource | Il représente une connexion à un fournisseur de données ADO.NET qui renvoie des données SQL, y compris des sources de données disponibles via OLEDB et QDBC. |
ObjetDataSource | Il permet de lier un objet métier .Net personnalisé qui renvoie des données |
LinqdataSource | Il permet de lier les résultats des requêtes Linq-t0-SQL. (Uniquement pris en charge par ASP.NET 3.5) |
AccèsDataSource | Il représente une connexion à une base de données Microsoft Access. |
La vue de source de données est un objet de la classe DataSourceView, qui représente une vue de données personnalisée conçue pour différentes opérations de données telles que le tri, le filtrage, etc.
La classe DataSourceView est utilisée comme classe de base pour toutes les classes d'affichage de source de données et définit les performances du contrôle de source de données.
Le tableau suivant fournit les propriétés de la classe DataSourceView :
propriété | décrire |
---|---|
CanSupprimer | Indique si la suppression de sources de données potentielles est autorisée. |
CanInsérer | Indique s’il faut autoriser l’insertion de sources de données potentielles. |
CanPage | Indique si la pagination des sources de données potentielles est autorisée. |
CanRetrieveTotalRowCount | Indique si les informations totales sur la ligne peuvent être obtenues. |
Peut trier | Indique si les données peuvent être triées. |
CanUpdate | Indique si les mises à jour sont autorisées sur la source de données potentielle. |
Événements | Obtient une liste de gestionnaires d'événements représentés par la vue de la source de données. |
Nom | Le nom de la vue. |
Le tableau suivant fournit les méthodes de la classe DataSourceView :
méthode | décrire |
---|---|
PeutExécuter | Déterminez si la commande spécifiée peut être exécutée. |
Exécuter la commande | Exécutez la commande spécifiée. |
ExécuterSupprimer | Effectue une opération de suppression sur la liste de données représentée par l'objet DataSourceView. |
ExécuterInsérer | Effectue une opération d'insertion sur la liste de données représentée par un objet DataSourceView. |
ExécuterSélectionner | Obtenez une liste de données du magasin de données sous-jacent. |
ExécuterMise à jour | Effectue une opération de mise à jour sur la liste des données représentée par l'objet DataSourceView. |
Supprimer | Effectue une opération de suppression sur les données associées à la vue. |
Insérer | Effectue une opération d'insertion sur les données associées à la vue. |
Sélectionner | Renvoie les données interrogées. |
Mise à jour | Effectue une opération de mise à jour sur les données associées à la vue. |
OnDataSourceViewChanged | Déclenchez l'événement DataSourceViewChanged. |
RaiseUnsupportedCapabilitiesError | Appelé par la méthode RaiseUnsupportedCapabilitiesError pour comparer les fonctionnalités requises par l'opération ExecuteSelect avec les fonctionnalités prises en charge par la vue. |
Le contrôle SqlDataSource représente une connexion à une base de données associée telle qu'une base de données SQL Server ou Oracle, ou à des données accessibles via OLEDB ou Open Database Connectivity (ODBC). La connexion des données s'effectue via deux propriétés importantes : ConnectionString et ProviderName.
L'extrait de code suivant fournit la syntaxe de base du contrôle :
<asp:SqlDataSource runat="server" ID="MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString='<%$ ConnectionStrings:LocalNWind %>' SelectionCommand= "SELECT * FROM EMPLOYEES" /><asp:GridView ID="GridView1" runat="server" DataSourceID="MySqlSource" />
La configuration de différentes opérations de données sur les données sous-jacentes dépend de différentes propriétés (ensembles de propriétés) du contrôle de source de données.
Le tableau suivant fournit le jeu de propriétés associé du contrôle SqlDataSource, qui fournit l'interface de programmation du contrôle :
groupe d'attributs | décrire |
---|---|
Supprimer la commande, supprimer les paramètres, supprimer le type de commande | Obtient ou définit l'instruction SQL, les paramètres et le type de lignes à supprimer dans les données sous-jacentes. |
Expression de filtre, paramètres de filtre | Obtient et définit les chaînes et les paramètres de filtrage des données. |
InsertCommand, InsertParameters, InsertCommandType | Obtient ou définit l'instruction SQL, les paramètres et le type de lignes insérées dans les données sous-jacentes. |
SelectCommand, SelectParameters, SelectCommandType | Obtient ou définit l'instruction SQL, les paramètres et le type de lignes extraites des données sous-jacentes. |
SortParameterName | Obtient ou définit le nom d'un paramètre d'entrée qui sera utilisé par la procédure stockée de commande pour trier les données. |
UpdateCommand, UpdateParameters, UpdateCommandType | Obtient ou définit l'instruction SQL, les paramètres et le type de lignes mises à jour dans les données sous-jacentes. |
L'extrait de code suivant montre le contrôle de source de données qui peut être utilisé pour effectuer des opérations sur les données :
<asp:SqlDataSource runat="server" ID= "MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString=' <%$ ConnectionStrings:LocalNWind %>' SelectCommand= "SELECT * FROM EMPLOYEES" UpdateCommand= "UPDATE EMPLOYEES SET LASTNAME=@lame" DeleteCommand= "DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid" FilterExpression= "EMPLOYEEID > 10"> ..... .....</asp:SqlDataSource>
Le contrôle ObjectDataSource permet aux classes définies par l'utilisateur de connecter la sortie de leurs méthodes aux contrôles liés aux données. L'interface de programmation de cette classe est presque la même que celle du contrôle SqlDataSource.
Voici deux aspects importants de la liaison des objets client :
Une classe pouvant être liée doit avoir un constructeur par défaut, être sans état et disposer de méthodes permettant de sélectionner, mettre à jour, insérer et supprimer la sémantique.
Les objets doivent être mis à jour un élément à la fois, les opérations par lots ne sont pas prises en charge.
Passons directement à un exemple d'utilisation de ce contrôle. La classe étudiante est une classe utilisée avec un objet source de données. Cette classe a trois attributs : une carte d’étudiant, un nom et une ville. Il possède un constructeur par défaut et une méthode GetStudents qui récupère les données.
classe d'élève :
public class Student{ public int StudentID { get; set; } public string Name { get; set; } public string City { get; set; } public Student() { } public DataSet GetStudents() { DataSet ds = new DataSet(); DataTable dt = new DataTable("Students"); dt.Columns.Add("StudentID", typeof(System.Int32)); dt.Columns.Add("StudentName", typeof(System.String)); dt.Columns.Add("StudentCity", typeof(System.String)); dt.Rows.Add(new object[] { 1, "MH Kabir", "Calcutta" }); dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" }); ds.Tables.Add(dt); return ds; }}
Suivez les étapes suivantes pour lier le câble à un objet source de données et récupérer les données :
Créez une nouvelle page Web.
Ajoutez une classe (Student.cs) au projet Explorateur de solutions en cliquant dessus avec le bouton droit, en ajoutant un modèle de classe et en plaçant le code ci-dessus à l'intérieur.
Établissez des méthodes pour qu’une application puisse utiliser une référence à la classe.
Placez un objet de contrôle de source de données dans le formulaire Web.
Configurez la source de données en sélectionnant l'objet.
Choisissez des méthodes de données pour différentes opérations sur les données. Dans cet exemple, il n’existe qu’une seule méthode.
Placez un contrôle lié aux données, tel qu'une vue en grille, sur la page et sélectionnez l'objet source de données comme source de données potentielle.
À ce stade, la vue conception devrait ressembler à ceci :
En exécutant le projet, il récupère l'ancêtre codé en dur dans la classe des étudiants.
Le contrôle AccessDataSource représente une connexion à une base de données Access. Il est basé sur le contrôle SqlDataSource et fournit une interface de programmation plus simple. L'extrait de code suivant fournit la syntaxe de base de la source de données :
<asp:AccessDataSource ID="AccessDataSource1 runat="server" DataFile="~/App_Data/ASPDotNetStepByStep.mdb" SelectCommand="SELECT * FROM [DotNetReferences]"></asp:AccessDataSource>
Le contrôle AccessDataSource ouvre la base de données en mode lecture seule. Cependant, il peut également être utilisé pour effectuer des opérations d’insertion, de mise à jour ou de suppression. Ceci est accompli à l'aide de commandes et de jeux de paramètres ADO.NET.
Les mises à jour posent problème pour les bases de données Access dans les applications ASP.NET, car la base de données Access est un texte brut et le compte d'application ASP.NET par défaut peut disposer d'autorisations d'écriture sur les fichiers de base de données.