Nouveau

Une introduction à DataSet dans VB.NET

Une introduction à DataSet dans VB.NET

Une grande partie de la technologie de données de Microsoft, ADO.NET, est fournie par l’objet DataSet. Cet objet lit la base de données et crée une copie en mémoire de la partie de la base de données nécessaire à votre programme. Un objet DataSet correspond généralement à une table ou à une vue réelle de la base de données, mais DataSet est une vue déconnectée de la base de données. Une fois que ADO.NET a créé un DataSet, une connexion active à la base de données n'est plus nécessaire, ce qui facilite l'évolutivité, car le programme doit uniquement se connecter à un serveur de base de données pendant une microseconde lors de la lecture ou de l'écriture. En plus d'être fiable et facile à utiliser, DataSet prend en charge une vue hiérarchique des données en tant que XML et une vue relationnelle que vous pouvez gérer après la déconnexion de votre programme.

Vous pouvez créer vos propres vues uniques d'une base de données à l'aide de DataSet. Reliez les objets DataTable les uns aux autres avec des objets DataRelation. Vous pouvez même appliquer l'intégrité des données à l'aide des objets UniqueConstraint et ForeignKeyConstraint. L'exemple simple ci-dessous utilise une seule table, mais vous pouvez en utiliser plusieurs si vous en avez besoin.

Codage d'un ensemble de données VB.NET

Ce code crée un ensemble de données avec une table, une colonne et deux lignes:

Dim ds As New DataSet Dim dt As DataTable Dim dr As DataRow Dim cl As DataColumn Dim i En tant qu'entier dt = New DataTable () cl = New DataColumn ("theColumn", Type.GetType ("System.Int32")) dt.Columns .Add (cl) dr = dt.NewRow () dr ("laColonne") = 1 dt.Rows.Add (dr) dr = dt.NewRow () dr ("laColonne") = 2 dt.Rows.Add (dr ) ds.Tables.Add (dt) Pour i = 0 À ds.Tables (0) .Rows.Count - 1 Console.WriteLine (ds.Tables (0) .Rows (i) .Item (0) .ToString) Suivant je

Le moyen le plus courant de créer un DataSet consiste à utiliser la méthode Fill de l'objet DataAdapter. Voici un exemple de programme testé:

Dim connectionString As String = "Source de données = MUKUNTUWEAP;" & "Catalogue initial = Booze;" & "Sécurité intégrée = True" Dim cn As New SqlConnection (connectionString) Dim commandWrapper As SqlCommand = New SqlCommand ("SELECT * FROM RECIPES", cn) Dim dataAdapter As SqlDataAdapter = New SqlDataAdapter Dim myDataSet As DataSet = New DataSet DataAdapter. commandWrapper dataAdapter.Fill (myDataSet, "Recipes")

Le DataSet peut ensuite être traité comme une base de données dans votre code de programme. La syntaxe ne l'exige pas, mais vous devez normalement fournir le nom du DataTable dans lequel charger les données. Voici un exemple montrant comment afficher un champ.

Dim r comme DataRow pour chaque r dans myDataSet.Tables ("Recipes"). Lignes Console.WriteLine (r ("RecipeName"). ToString ()) Next

Bien que le DataSet soit facile à utiliser, si les performances brutes sont l'objectif, vous feriez mieux d'écrire plus de code et d'utiliser plutôt DataReader.

Si vous devez mettre à jour la base de données après avoir modifié le DataSet, vous pouvez utiliser la méthode Update de l'objet DataAdapter, mais vous devez vous assurer que les propriétés de DataAdapter sont correctement définies avec les objets SqlCommand. SqlCommandBuilder est généralement utilisé pour cela.

Dim objCommandBuilder As New SqlCommandBuilder (dataAdapter) dataAdapter.Update (myDataSet, "Recipes")

DataAdapter détermine ce qui a changé, puis exécute une commande INSERT, UPDATE ou DELETE, mais comme pour toutes les opérations de base de données, les mises à jour de la base de données peuvent rencontrer des problèmes lorsque la base de données est mise à jour par d'autres utilisateurs. Vous devez donc souvent inclure du code. anticiper et résoudre les problèmes lors du changement de base de données.

Parfois, seul un DataSet fait ce dont vous avez besoin. Si vous avez besoin d'une collection et que vous sérialisez les données, un DataSet est l'outil à utiliser. Vous pouvez rapidement sérialiser un DataSet en XML en appelant la méthode WriteXML.

DataSet est l'objet le plus probable que vous utiliserez pour les programmes faisant référence à une base de données. C'est l'objet principal utilisé par ADO.NET et il est conçu pour être utilisé en mode déconnecté.