ADO.NET fournit un pont entre les contrôles frontaux et les bases de données principales. Les objets ADO.NET encapsulent toutes les opérations et contrôles d'accès aux données qui interagissent avec les objets d'affichage des données. Les détails du mouvement des données sont ainsi masqués.
Le diagramme suivant montre l'objet ADO.NET dans son ensemble :
Un ensemble de données représente un sous-ensemble d'une base de données. Il n'a pas de connexion persistante à la base de données. Une reconnexion est nécessaire pour mettre à niveau la base de données. DataSet comprend les objets DataTable et DataRelation. Les objets DataRelation représentent la relation entre deux tables.
Le tableau suivant présente quelques propriétés importantes de la classe DataSet :
propriété | décrire |
---|---|
Sensible aux majuscules et minuscules | Indique si la chaîne à comparer avec la table de données est sensible à la casse. |
Récipient | Obtenez de l'espace pour le composant. |
Nom du jeu de données | Obtient ou définit le nom d'une collection de données existante. |
DefaultViewManager | Renvoie une vue des données dans la collection de données. |
Mode Conception | Indique si le composant est en mode conception. |
Appliquer les contraintes | Indique si les restrictions sont respectées lors de la tentative de téléchargement d'un fichier. |
Événements | Obtenez la liste des gestionnaires d'événements liés à ce composant. |
Propriétés étendues | Obtient une collection d’informations utilisateur personnalisées liées au DataSet. |
A des erreurs | Indiquez s'il y a des erreurs. |
EstInitialisé | Indique si le DataSet est initialisé. |
Lieu | Obtient ou définit les informations utilisées pour comparer les chaînes avec la table. |
Espace de noms | Obtient ou définit l'espace de noms du DataSet. |
Préfixe | Obtient ou définit un préfixe XML qui est un alias pour un espace de noms. |
Rapports | Renvoie une collection d'objets DataRelation. |
Tableaux | Renvoie une collection d'objets DataTable. |
Le tableau suivant répertorie certaines méthodes importantes de la classe DataSet :
méthode | décrire |
---|---|
Accepter les modifications | Accepte toutes les modifications dues au chargement du DataSet ou de cette méthode. |
DébutInit | Démarrez l’initialisation de DataSet. Cette initialisation se produit au moment de l'exécution. |
Clair | Effacer les données. |
Cloner | Clonez la structure du DataSet, y compris toutes les structures, relations et contraintes DataTable. Mais les données ne sont pas clonées. |
Copie | Copiez les données et les structures. |
CréerDataReader() | Renvoie un DataTableReader avec un jeu de résultats pour chaque DataTable, dans le même ordre que celui dans lequel les tables de la collection Tables apparaissent. |
CreateDataReader(DataTable[]) | Renvoie un DataTableReader avec un jeu de résultats pour chaque DataTable. |
FinInit | Termine l'initialisation d'un DataSet utilisé sur un formulaire ou utilisé par un autre composant. L'initialisation a lieu au moment de l'exécution. |
Égal à (Objet) | Détermine si l'objet spécifié est égal à l'objet actuel. |
Finaliser | Libérez des ressources pour effectuer un nettoyage supplémentaire. |
Obtenir les modifications | Obtient une copie du DataSet qui contient toutes les modifications apportées au DataSet depuis son chargement ou depuis le dernier appel d'AcceptChanges. |
GetChanges (DataRowState) | Obtient une copie du DataSet filtré par DataRowState qui contient toutes les modifications apportées à l'ensemble de données depuis son dernier chargement ou depuis l'appel d'AcceptChanges. |
GetDataSetSchema | Obtenez une copie du XmlSchemaSet pour le DataSet. |
ObtenirObjectData | Remplissez l’objet d’informations sérialisé avec les données requises pour sérialiser le DataSet. |
ObtenirType | Obtenez le type de l’instance actuelle. |
ObtenirXML | Renvoie une représentation XML des données stockées dans le DataSet. |
ObtenirXMLSchema | Renvoie le schéma XML de la représentation XML des données stockées dans le DataSet. |
A des changements() | Obtient une valeur indiquant si le DataSet a changé, y compris de nouvelles lignes, des lignes supprimées ou des lignes modifiées. |
HasChanges (DataRowState) | Obtient une valeur indiquant si le DataSet a des modifications filtrées par DataRowState, y compris de nouvelles lignes, des lignes supprimées ou des lignes modifiées. |
EstBinarySerialized | Vérifiez le format de la représentation sérialisée du DataSet. |
Charger (IDataReader, LoadOption, DataTable[]) | Utilisez le IDataReader fourni pour remplir le DataSet avec les valeurs de la source de données, tout en utilisant un tableau d'instances DataTable pour fournir des informations sur le schéma et l'espace de noms. |
Charger(IDataReader, LoadOption, String[]) | Remplissez le DataSet avec les valeurs de la source de données à l'aide du IDataReader fourni et en utilisant un tableau de chaînes pour fournir des noms aux tables du DataSet. |
Fusionner() | Fusionne le tableau spécifié d'objets DataSet, DataTable ou DataRow dans le DataSet ou DataTable actuel. Il existe différentes surcharges de cette méthode. |
LireXML() | Lisez le schéma XML et les données dans le DataSet. Il existe différentes surcharges de cette méthode. |
LireSchéma XML(0) | Lisez le schéma XML dans le DataSet. Il existe différentes surcharges de cette méthode. |
Rejeter les modifications | Annulez toutes les modifications apportées au DataSet depuis sa création ou depuis le dernier appel de DataSet.AcceptChanges. |
ÉcrireXML() | Écrivez des données XML et un schéma à partir de DataSet. Il existe différentes surcharges de cette méthode. |
WriteXMLSchema() | Écrivez un schéma XML à partir de DataSet. Il existe différentes surcharges de cette méthode. |
La classe DataTable représente une table dans une base de données. Il possède les propriétés importantes suivantes : La plupart des propriétés sont en lecture seule, à l'exception de la propriété PrimaryKey :
propriété | décrire |
---|---|
Relations avec les enfants | Obtient la collection de relations enfants de ce DataTable. |
Colonnes | Obtient la collection de colonnes appartenant à cette table. |
Contraintes | Obtient la collection de contraintes maintenues par cette table. |
Ensemble de données | Récupère le DataSet auquel appartient cette table. |
Vue par défaut | Obtient une vue personnalisée d'un tableau pouvant inclure des vues filtrées ou des positions de curseur. |
Relations avec les parents | Obtient la collection de relations parents de ce DataTable. |
Clé primaire | Obtient ou définit le tableau de colonnes qui servent de clés primaires pour la table de données. |
Lignes | Obtient la collection de lignes appartenant à cette table. |
Le tableau suivant répertorie quelques méthodes importantes de la classe DataTable :
méthode | décrire |
---|---|
Accepter les modifications | Valide toutes les modifications apportées à ce DataSet depuis son chargement ou depuis le dernier appel de AcceptChanges. |
Clair | Efface le DataSet de toutes les données en supprimant toutes les lignes de toutes les tables. |
Obtenir les modifications | Obtient une copie du DataSet qui contient toutes les modifications apportées au DataSet depuis son dernier chargement ou depuis l'appel d'AcceptChanges. |
ObtenirErreurs | Obtient un tableau d'objets DataRow contenant des erreurs. |
Importer des lignes | Copiez le DataRow dans le DataTable, en conservant tous les paramètres de propriété et les valeurs initiales et actuelles. |
LoadDataRow | Recherchez et mettez à jour des lignes spécifiques. Si aucune ligne correspondante n'est trouvée, une nouvelle ligne est créée avec la valeur donnée. |
Fusionner | Fusionne le tableau spécifié d'objets DataSet, DataTable ou DataRow dans le DataSet ou DataTable actuel. |
NouvelleLigne | Créez un nouveau DataRow avec le même schéma que la table. |
Rejeter les modifications | Annulez toutes les modifications apportées à la table depuis le chargement de la table ou depuis le dernier appel de AcceptChanges. |
Réinitialiser | Efface toutes les tables et supprime toutes les relations, contraintes externes et tables du DataSet. Les sous-classes doivent remplacer Reset pour restaurer le DataSet à son état d’origine. |
Sélectionner | Obtient un tableau d'objets DataRow. |
L'objet DataRow représente une ligne du tableau et possède les propriétés importantes suivantes :
propriété | décrire |
---|---|
A des erreurs | Indique s'il y a des erreurs. |
Articles | Obtenez ou définissez les données stockées dans une colonne spécifique. |
Tableaux d'éléments | Obtenez ou définissez toutes les valeurs de cette ligne. |
Tableau | Renvoie la table parent. |
Le tableau suivant répertorie les méthodes importantes de la classe DataRow :
méthode | décrire |
---|---|
Accepter les modifications | Applique toutes les modifications depuis l’appel de cette méthode. |
Commencer | Commencez l’opération d’édition. |
Annuler | Annulez l’opération d’édition. |
Supprimer | Supprimez les lignes de données. |
Fin | Terminez l’opération d’édition. |
ObtenirEnfantRows | Obtenez les sous-lignes de cette ligne. |
ObtenirParentRow | Obtenez la ligne parent. |
ObtenirParentRows | Obtenez la ligne parent du DataRow. |
Rejeter les modifications | Annulez toutes les modifications apportées après l’appel d’AcceptChanges. |
L'objet DataAdapter agit comme intermédiaire entre l'objet DataSet et la base de données. Cela aide le DataSet à obtenir des données à partir de plusieurs bases de données ou d'autres sources de données.
Les objets DataReader constituent une alternative à la combinaison de DataSet et DataAdapter. Cet objet fournit un accès dirigé aux enregistrements de données dans la base de données. Ces objets ne conviennent qu'à un accès en lecture seule, comme remplir une liste puis la déconnecter.
L'objet DbConnection représente la connexion à la source de données. Cette connexion peut être partagée entre différents objets de commande. Un objet DbCommand représente une commande ou un processus stocké envoyé à la base de données pour récupérer ou manipuler des données.
Jusqu'à présent, nous avons utilisé des tables et des bases de données de nos ordinateurs. Dans ce cas, nous allons créer un tableau, ajouter des colonnes, des lignes et des données, et afficher le tableau à l'aide d'un contrôle GridView.
Le code du fichier source est le suivant :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="createdatabase._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server"> </asp:GridView> </div> </form> </body></html>
Le code du fichier est le suivant :
namespace createdatabase{ public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataSet ds = CreateDataSet(); GridView1.DataSource = ds.Tables["Student"]; GridView1.DataBind(); } } private DataSet CreateDataSet() { //creating a DataSet object for tables DataSet dataset = new DataSet(); // creating the student table DataTable Students = CreateStudentTable(); dataset.Tables.Add(Students); return dataset; } private DataTable CreateStudentTable() { DataTable Students = new DataTable("Student"); // adding columns AddNewColumn(Students, "System.Int32", "StudentID"); AddNewColumn(Students, "System.String", "StudentName"); AddNewColumn(Students, "System.String", "StudentCity"); // adding rows AddNewRow(Students, 1, "MH Kabir", "Kolkata"); AddNewRow(Students, 1, "Shreya Sharma", "Delhi"); AddNewRow(Students, 1, "Rini Mukherjee", "Hyderabad"); AddNewRow(Students, 1, "Sunil Dubey", "Bikaner"); AddNewRow(Students, 1, "Rajat Mishra", "Patna"); return Students; } private void AddNewColumn(DataTable table, string columnType, string columnName) { DataColumn column = table.Columns.Add(columnName, Type.GetType(columnType)); } //adding data into the table private void AddNewRow(DataTable table, int id, string name, string city) { DataRow newrow = table.NewRow(); newrow["StudentID"] = id; newrow["StudentName"] = name; newrow["StudentCity"] = city; table.Rows.Add(newrow); } }}
Pendant que vous exécutez le programme, observez les aspects suivants :
Le programme crée d’abord une collection de données, puis la lie à l’aide de la méthode DataBind() du contrôle GridView.
La méthode Createdataset() est une fonction définie par l'utilisateur qui crée un nouvel objet DataSet et appelle la méthode CreateStudentTable() supplémentaire définie par l'utilisateur pour créer des tables, puis les ajouter à la collection de tables du DataSet.
La méthode CreateStudentTable() appelle les méthodes AddNewColumn() et AddNewRow() définies par l'utilisateur pour créer les colonnes et les lignes du tableau et ajouter des données aux lignes. Lorsque la page est exécutée, elle renvoie les lignes du tableau comme indiqué ci-dessous :