DataSet, classe (System.Data)

Bibliothèque de classes .NET Framework 
DataSet, classe 

Représente un cache en mémoire de données.

Espace de noms : System.Data
Assembly : System.Data (dans system.data.dll)

SyntaxeSyntaxe


Visual Basic (Déclaration)
<SerializableAttribute> _
Public Class DataSet
    Inherits MarshalByValueComponent
    Implements IListSource, IXmlSerializable, ISupportInitializeNotification, ISupportInitialize, _
    ISerializable


Visual Basic (Utilisation)
Dim instance As DataSet


C#
[SerializableAttribute] 
public class DataSet : MarshalByValueComponent, IListSource, IXmlSerializable, ISupportInitializeNotification, 
    ISupportInitialize, ISerializable


C++
[SerializableAttribute] 
public ref class DataSet : public MarshalByValueComponent, IListSource, IXmlSerializable, ISupportInitializeNotification, 
    ISupportInitialize, ISerializable


J#
/** @attribute SerializableAttribute() */ 
public class DataSet extends MarshalByValueComponent implements IListSource, IXmlSerializable, 
    ISupportInitializeNotification, ISupportInitialize, ISerializable


JScript
SerializableAttribute 
public class DataSet extends MarshalByValueComponent implements IListSource, IXmlSerializable, 
    ISupportInitializeNotification, ISupportInitialize, ISerializable
NotesNotes

DataSet, qui est un cache en mémoire des données récupérées d'une source de données, est un composant important de l'architecture ADO.NET. DataSet est constitué d'une collection d'objets DataTable que vous pouvez lier entre eux à l'aide d'objets DataRelation. Vous pouvez également appliquer l'intégrité des données dans le DataSet à l'aide des objets UniqueConstraint et ForeignKeyConstraint. Pour plus d'informations sur l'utilisation d'objets DataSet, consultez Utilisation de DataSets dans ADO.NET.

Tandis que les objets DataTable contiennent les données, DataRelationCollection vous permet de naviguer au sein de la hiérarchie des tables. Les tables sont contenues dans un DataTableCollection accessible à l'aide de la propriété Tables. Lorsque vous accédez à des objets DataTable, remarquez qu'ils respectent la casse dans certaines conditions. Par exemple, si DataTable est appelé "mydatatable" et un autre "Mydatatable", une chaîne utilisée pour rechercher une des deux tables est considérée comme respectant la casse. Cependant, si "mydatatable" existe, mais pas "Mydatatable", la chaîne recherchée est considérée comme ne respectant pas la casse. Pour plus d'informations sur l'utilisation d'objets DataTable, consultez Création d'un DataTable.

DataSet peut lire et écrire les données et le schéma en tant que documents XML. Les données et le schéma peuvent ensuite être transportés au moyen de HTTP et utilisés par n'importe quelle application, sur toute plate-forme compatible XML. Vous pouvez enregistrer le schéma en tant que schéma XML à l'aide de la méthode WriteXmlSchema. Il est également possible d'enregistrer le schéma et les données à l'aide de la méthode WriteXml. Pour lire un document XML comprenant à la fois un schéma et des données, utilisez la méthode ReadXml.

Lors d'une implémentation à plusieurs couches standard, la procédure de création et d'actualisation de DataSet, puis de mise à jour des données d'origine consiste à :

  1. générer et remplir chaque DataTable de DataSet avec des données provenant d'une source de données à l'aide de DataAdapter ;

  2. modifier les données dans les objets DataTable en ajoutant, mettant à jour ou supprimant des objets DataRow ;

  3. appeler la méthode GetChanges pour créer un deuxième DataSet qui représente uniquement les modifications apportées aux données ;

  4. appeler la méthode Update de DataAdapter, en passant le deuxième DataSet comme argument.

  5. Appelez la méthode Merge pour fusionner les modifications du deuxième DataSet dans le premier.

  6. Appelez AcceptChanges sur DataSet. Vous pouvez également appeler RejectChanges pour annuler les modifications.

RemarqueRemarque

Les objets DataSet et DataTable héritent de MarshalByValueComponent et prennent en charge l'interface ISerializable pour l'accès à distance. Il s'agit uniquement d'objets ADO.NET qui peuvent être distants.

ExempleExemple

L'exemple suivant est constitué de plusieurs méthodes qui, une fois combinées, créent et remplissent un DataSet à partir de la base de données Northwind.



Visual Basic
Option Explicit On
Option Strict On

Imports System.Data
Imports system.Data.SqlClient

Public Class NorthwindDataSet

    Public Shared Sub Main()
        Dim connectionString As String = _
            GetConnectionString()
        ConnectToData(connectionString)
    End Sub

    Private Shared Sub ConnectToData( _
        ByVal connectionString As String)

        ' Create a SqlConnection to the Northwind database.
        Using connection As SqlConnection = New SqlConnection( _
           connectionString)

            ' Create a SqlDataAdapter for the Suppliers table.
            Dim suppliersAdapter As SqlDataAdapter = _
               New SqlDataAdapter()

            ' A table mapping names the DataTable.
            suppliersAdapter.TableMappings.Add("Table", "Suppliers")

            ' Open the connection.
            connection.Open()
            Console.WriteLine("The SqlConnection is open.")

            ' Create a SqlCommand to retrieve Suppliers data.
            Dim suppliersCommand As SqlCommand = New SqlCommand( _
               "SELECT SupplierID, CompanyName FROM dbo.Suppliers;", _
               connection)
            suppliersCommand.CommandType = CommandType.Text

            ' Set the SqlDataAdapter's SelectCommand.
            suppliersAdapter.SelectCommand = suppliersCommand

            ' Fill the DataSet.
            Dim dataSet As DataSet = New DataSet("Suppliers")
            suppliersAdapter.Fill(dataSet)

            ' Create a second SqlDataAdapter and SqlCommand to get
            ' the Products table, a child table of Suppliers. 
            Dim productsAdapter As SqlDataAdapter = _
                New SqlDataAdapter()
            productsAdapter.TableMappings.Add("Table", "Products")

            Dim productsCommand As SqlCommand = New SqlCommand( _
               "SELECT ProductID, SupplierID FROM dbo.Products;", _
               connection)
            productsAdapter.SelectCommand = productsCommand

            ' Fill the DataSet.
            productsAdapter.Fill(dataSet)

            ' Close the connection.
            connection.Close()
            Console.WriteLine("The SqlConnection is closed.")

            ' Create a DataRelation to link the two tables
            ' based on the SupplierID.
            Dim parentColumn As DataColumn = _
               dataSet.Tables("Suppliers").Columns("SupplierID")
            Dim childColumn As DataColumn = _
               dataSet.Tables("Products").Columns("SupplierID")
            Dim relation As DataRelation = New _
               System.Data.DataRelation("SuppliersProducts", _
               parentColumn, childColumn)
            dataSet.Relations.Add(relation)

            Console.WriteLine( _
               "The {0} DataRelation has been created.", _
               relation.RelationName)
        End Using

    End Sub

    Private Shared Function GetConnectionString() As String
        ' To avoid storing the connection string in your code,  
        ' you can retrieve it from a configuration file.
        Return "Data Source=(local);Initial Catalog=Northwind;" _
           & "Integrated Security=SSPI;"
    End Function
End Class


C#
using System;
using System.Data;
using System.Data.SqlClient;

namespace Microsoft.AdoNet.DataSetDemo
{
    class NorthwindDataSet
    {
        static void Main()
        {
            string connectionString = GetConnectionString();
            ConnectToData(connectionString);
        }

        private static void ConnectToData(string connectionString)
        {
            //Create a SqlConnection to the Northwind database.
            using (SqlConnection connection =
                       new SqlConnection(connectionString))
            {
                //Create a SqlDataAdapter for the Suppliers table.
                SqlDataAdapter adapter = new SqlDataAdapter();

                // A table mapping names the DataTable.
                adapter.TableMappings.Add("Table", "Suppliers");

                // Open the connection.
                connection.Open();
                Console.WriteLine("The SqlConnection is open.");

                // Create a SqlCommand to retrieve Suppliers data.
                SqlCommand command = new SqlCommand(
                    "SELECT SupplierID, CompanyName FROM dbo.Suppliers;",
                    connection);
                command.CommandType = CommandType.Text;

                // Set the SqlDataAdapter's SelectCommand.
                adapter.SelectCommand = command;

                // Fill the DataSet.
                DataSet dataSet = new DataSet("Suppliers");
                adapter.Fill(dataSet);

                // Create a second Adapter and Command to get
                // the Products table, a child table of Suppliers. 
                SqlDataAdapter productsAdapter = new SqlDataAdapter();
                productsAdapter.TableMappings.Add("Table", "Products");

                SqlCommand productsCommand = new SqlCommand(
                    "SELECT ProductID, SupplierID FROM dbo.Products;",
                    connection);
                productsAdapter.SelectCommand = productsCommand;

                // Fill the DataSet.
                productsAdapter.Fill(dataSet);

                // Close the connection.
                connection.Close();
                Console.WriteLine("The SqlConnection is closed.");

                // Create a DataRelation to link the two tables
                // based on the SupplierID.
                DataColumn parentColumn =
                    dataSet.Tables["Suppliers"].Columns["SupplierID"];
                DataColumn childColumn =
                    dataSet.Tables["Products"].Columns["SupplierID"];
                DataRelation relation =
                    new System.Data.DataRelation("SuppliersProducts",
                    parentColumn, childColumn);
                dataSet.Relations.Add(relation);
                Console.WriteLine(
                    "The {0} DataRelation has been created.",
                    relation.RelationName);
            }
        }

        static private string GetConnectionString()
        {
            // To avoid storing the connection string in your code, 
            // you can retrieve it from a configuration file.
            return "Data Source=(local);Initial Catalog=Northwind;"
                + "Integrated Security=SSPI";
        }
    }
}
Hiérarchie d'héritageHiérarchie d'héritage
Sécurité des threadsSécurité des threads

Ce type est sécurisé pour les opérations de lecture multithread. Vous devez synchroniser les opérations d'écriture.

Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de versionInformations de version

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Voir aussiVoir aussi

Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/system.data.dataset.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

13 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-4298
Document créé le 07/10/06 12:04, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-system.data.dataset.html Document affiché 4 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,75 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
CHANDAIL : Vêtement que doit porter un enfant lorsque sa mère a froid.

Pierre Desproges
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 19:02, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)