Export (0) Print
Expand All

DataSet Class

Represents an in-memory cache of data.

Namespace:  System.Data
Assembly:  System.Data (in System.Data.dll)

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

The DataSet type exposes the following members.

  NameDescription
Public methodSupported by the XNA FrameworkDataSet()Initializes a new instance of the DataSet class.
Public methodSupported by the XNA FrameworkDataSet(String)Initializes a new instance of a DataSet class with the given name.
Protected methodDataSet(SerializationInfo, StreamingContext)Infrastructure. Initializes a new instance of a DataSet class that has the given serialization information and context.
Protected methodDataSet(SerializationInfo, StreamingContext, Boolean)Infrastructure. Initializes a new instance of the DataSet class.
Top

  NameDescription
Public propertySupported by the XNA FrameworkCaseSensitiveGets or sets a value indicating whether string comparisons within DataTable objects are case-sensitive.
Public propertySupported by the XNA FrameworkContainerGets the container for the component. (Inherited from MarshalByValueComponent.)
Public propertySupported by the XNA FrameworkDataSetNameGets or sets the name of the current DataSet.
Public propertySupported by the XNA FrameworkDefaultViewManagerGets a custom view of the data contained in the DataSet to allow filtering, searching, and navigating using a custom DataViewManager.
Public propertySupported by the XNA FrameworkDesignModeGets a value indicating whether the component is currently in design mode. (Inherited from MarshalByValueComponent.)
Public propertySupported by the XNA FrameworkEnforceConstraintsGets or sets a value indicating whether constraint rules are followed when attempting any update operation.
Protected propertySupported by the XNA FrameworkEventsGets the list of event handlers that are attached to this component. (Inherited from MarshalByValueComponent.)
Public propertySupported by the XNA FrameworkExtendedPropertiesGets the collection of customized user information associated with the DataSet.
Public propertySupported by the XNA FrameworkHasErrorsGets a value indicating whether there are errors in any of the DataTable objects within this DataSet.
Public propertySupported by the XNA FrameworkIsInitializedGets a value that indicates whether the DataSet is initialized.
Public propertySupported by the XNA FrameworkLocaleGets or sets the locale information used to compare strings within the table.
Public propertySupported by the XNA FrameworkNamespaceGets or sets the namespace of the DataSet.
Public propertySupported by the XNA FrameworkPrefixGets or sets an XML prefix that aliases the namespace of the DataSet.
Public propertySupported by the XNA FrameworkRelationsGet the collection of relations that link tables and allow navigation from parent tables to child tables.
Public propertyRemotingFormatGets or sets a SerializationFormat for the DataSet used during remoting.
Public propertySupported by the XNA FrameworkSchemaSerializationModeGets or sets a SchemaSerializationMode for a DataSet.
Public propertySupported by the XNA FrameworkSiteGets or sets an System.ComponentModel.ISite for the DataSet. (Overrides MarshalByValueComponent.Site.)
Public propertySupported by the XNA FrameworkTablesGets the collection of tables contained in the DataSet.
Top

  NameDescription
Public methodSupported by the XNA FrameworkAcceptChangesCommits all the changes made to this DataSet since it was loaded or since the last time AcceptChanges was called.
Public methodSupported by the XNA FrameworkBeginInitBegins the initialization of a DataSet that is used on a form or used by another component. The initialization occurs at run time.
Public methodSupported by the XNA FrameworkClearClears the DataSet of any data by removing all rows in all tables.
Public methodSupported by the XNA FrameworkCloneCopies the structure of the DataSet, including all DataTable schemas, relations, and constraints. Does not copy any data.
Public methodSupported by the XNA FrameworkCopyCopies both the structure and data for this DataSet.
Public methodSupported by the XNA FrameworkCreateDataReader()Returns a DataTableReader with one result set per DataTable, in the same sequence as the tables appear in the Tables collection.
Public methodSupported by the XNA FrameworkCreateDataReader(DataTable[])Returns a DataTableReader with one result set per DataTable.
Protected methodSupported by the XNA FrameworkDetermineSchemaSerializationMode(XmlReader)Determines the SchemaSerializationMode for a DataSet.
Protected methodDetermineSchemaSerializationMode(SerializationInfo, StreamingContext)Determines the SchemaSerializationMode for a DataSet.
Public methodSupported by the XNA FrameworkDispose()Releases all resources used by the MarshalByValueComponent. (Inherited from MarshalByValueComponent.)
Protected methodSupported by the XNA FrameworkDispose(Boolean)Releases the unmanaged resources used by the MarshalByValueComponent and optionally releases the managed resources. (Inherited from MarshalByValueComponent.)
Public methodSupported by the XNA FrameworkEndInitEnds the initialization of a DataSet that is used on a form or used by another component. The initialization occurs at run time.
Public methodSupported by the XNA FrameworkEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from MarshalByValueComponent.)
Public methodSupported by the XNA FrameworkGetChanges()Gets a copy of the DataSet that contains all changes made to it since it was loaded or since AcceptChanges was last called.
Public methodSupported by the XNA FrameworkGetChanges(DataRowState)Gets a copy of the DataSet containing all changes made to it since it was last loaded, or since AcceptChanges was called, filtered by DataRowState.
Public methodStatic memberSupported by the XNA FrameworkGetDataSetSchemaInfrastructure. Gets a copy of XmlSchemaSet for the DataSet.
Public methodSupported by the XNA FrameworkGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetObjectDataPopulates a serialization information object with the data needed to serialize the DataSet.
Protected methodSupported by the XNA FrameworkGetSchemaSerializableInfrastructure. Returns a serializable XMLSchema instance.
Protected methodGetSerializationDataInfrastructure. Deserializes the table data from the binary or XML stream.
Public methodSupported by the XNA FrameworkGetServiceGets the implementer of the IServiceProvider. (Inherited from MarshalByValueComponent.)
Public methodSupported by the XNA FrameworkGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodSupported by the XNA FrameworkGetXmlReturns the XML representation of the data stored in the DataSet.
Public methodSupported by the XNA FrameworkGetXmlSchemaReturns the XML Schema for the XML representation of the data stored in the DataSet.
Public methodSupported by the XNA FrameworkHasChanges()Gets a value indicating whether the DataSet has changes, including new, deleted, or modified rows.
Public methodSupported by the XNA FrameworkHasChanges(DataRowState)Gets a value indicating whether the DataSet has changes, including new, deleted, or modified rows, filtered by DataRowState.
Public methodSupported by the XNA FrameworkInferXmlSchema(Stream, String[])Applies the XML schema from the specified Stream to the DataSet.
Public methodSupported by the XNA FrameworkInferXmlSchema(String, String[])Applies the XML schema from the specified file to the DataSet.
Public methodSupported by the XNA FrameworkInferXmlSchema(TextReader, String[])Applies the XML schema from the specified TextReader to the DataSet.
Public methodSupported by the XNA FrameworkInferXmlSchema(XmlReader, String[])Applies the XML schema from the specified XmlReader to the DataSet.
Protected methodSupported by the XNA FrameworkInitializeDerivedDataSetInfrastructure. Deserialize all of the tables data of the DataSet from the binary or XML stream.
Protected methodIsBinarySerializedInspects the format of the serialized representation of the DataSet.
Public methodSupported by the XNA FrameworkLoad(IDataReader, LoadOption, DataTable[])Fills a DataSet with values from a data source using the supplied IDataReader, using an array of DataTable instances to supply the schema and namespace information.
Public methodSupported by the XNA FrameworkLoad(IDataReader, LoadOption, String[])Fills a DataSet with values from a data source using the supplied IDataReader, using an array of strings to supply the names for the tables within the DataSet.
Public methodSupported by the XNA FrameworkLoad(IDataReader, LoadOption, FillErrorEventHandler, DataTable[])Fills a DataSet with values from a data source using the supplied IDataReader, using an array of DataTable instances to supply the schema and namespace information.
Protected methodSupported by the XNA FrameworkMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by the XNA FrameworkMerge(DataRow[])Merges an array of DataRow objects into the current DataSet.
Public methodSupported by the XNA FrameworkMerge(DataSet)Merges a specified DataSet and its schema into the current DataSet.
Public methodSupported by the XNA FrameworkMerge(DataTable)Merges a specified DataTable and its schema into the current DataSet.
Public methodSupported by the XNA FrameworkMerge(DataSet, Boolean)Merges a specified DataSet and its schema into the current DataSet, preserving or discarding any changes in this DataSet according to the given argument.
Public methodSupported by the XNA FrameworkMerge(DataRow[], Boolean, MissingSchemaAction)Merges an array of DataRow objects into the current DataSet, preserving or discarding changes in the DataSet and handling an incompatible schema according to the given arguments.
Public methodSupported by the XNA FrameworkMerge(DataSet, Boolean, MissingSchemaAction)Merges a specified DataSet and its schema with the current DataSet, preserving or discarding changes in the current DataSet and handling an incompatible schema according to the given arguments.
Public methodSupported by the XNA FrameworkMerge(DataTable, Boolean, MissingSchemaAction)Merges a specified DataTable and its schema into the current DataSet, preserving or discarding changes in the DataSet and handling an incompatible schema according to the given arguments.
Protected methodSupported by the XNA FrameworkOnPropertyChangingRaises the OnPropertyChanging event.
Protected methodSupported by the XNA FrameworkOnRemoveRelationOccurs when a DataRelation object is removed from a DataTable.
Protected methodSupported by the XNA FrameworkOnRemoveTableOccurs when a DataTable is removed from a DataSet.
Protected methodSupported by the XNA FrameworkRaisePropertyChangingSends a notification that the specified DataSet property is about to change.
Public methodSupported by the XNA FrameworkReadXml(Stream)Reads XML schema and data into the DataSet using the specified System.IO.Stream.
Public methodSupported by the XNA FrameworkReadXml(String)Reads XML schema and data into the DataSet using the specified file.
Public methodSupported by the XNA FrameworkReadXml(TextReader)Reads XML schema and data into the DataSet using the specified System.IO.TextReader.
Public methodSupported by the XNA FrameworkReadXml(XmlReader)Reads XML schema and data into the DataSet using the specified System.Xml.XmlReader.
Public methodSupported by the XNA FrameworkReadXml(Stream, XmlReadMode)Reads XML schema and data into the DataSet using the specified System.IO.Stream and XmlReadMode.
Public methodSupported by the XNA FrameworkReadXml(String, XmlReadMode)Reads XML schema and data into the DataSet using the specified file and XmlReadMode.
Public methodSupported by the XNA FrameworkReadXml(TextReader, XmlReadMode)Reads XML schema and data into the DataSet using the specified System.IO.TextReader and XmlReadMode.
Public methodSupported by the XNA FrameworkReadXml(XmlReader, XmlReadMode)Reads XML schema and data into the DataSet using the specified System.Xml.XmlReader and XmlReadMode.
Public methodSupported by the XNA FrameworkReadXmlSchema(Stream)Reads the XML schema from the specified Stream into the DataSet.
Public methodSupported by the XNA FrameworkReadXmlSchema(String)Reads the XML schema from the specified file into the DataSet.
Public methodSupported by the XNA FrameworkReadXmlSchema(TextReader)Reads the XML schema from the specified TextReader into the DataSet.
Public methodSupported by the XNA FrameworkReadXmlSchema(XmlReader)Reads the XML schema from the specified XmlReader into the DataSet.
Protected methodSupported by the XNA FrameworkReadXmlSerializableInfrastructure. Ignores attributes and returns an empty DataSet.
Public methodSupported by the XNA FrameworkRejectChangesRolls back all the changes made to the DataSet since it was created, or since the last time DataSet.AcceptChanges was called.
Public methodSupported by the XNA FrameworkResetResets the DataSet to its original state. Subclasses should override Reset to restore a DataSet to its original state.
Protected methodSupported by the XNA FrameworkShouldSerializeRelationsGets a value indicating whether Relations property should be persisted.
Protected methodSupported by the XNA FrameworkShouldSerializeTablesGets a value indicating whether Tables property should be persisted.
Public methodSupported by the XNA FrameworkToStringReturns a String containing the name of the Component, if any. This method should not be overridden. (Inherited from MarshalByValueComponent.)
Public methodSupported by the XNA FrameworkWriteXml(Stream)Writes the current data for the DataSet using the specified System.IO.Stream.
Public methodSupported by the XNA FrameworkWriteXml(String)Writes the current data for the DataSet to the specified file.
Public methodSupported by the XNA FrameworkWriteXml(TextWriter)Writes the current data for the DataSet using the specified TextWriter.
Public methodSupported by the XNA FrameworkWriteXml(XmlWriter)Writes the current data for the DataSet to the specified XmlWriter.
Public methodSupported by the XNA FrameworkWriteXml(Stream, XmlWriteMode)Writes the current data, and optionally the schema, for the DataSet using the specified System.IO.Stream and XmlWriteMode. To write the schema, set the value for the mode parameter to WriteSchema.
Public methodSupported by the XNA FrameworkWriteXml(String, XmlWriteMode)Writes the current data, and optionally the schema, for the DataSet to the specified file using the specified XmlWriteMode. To write the schema, set the value for the mode parameter to WriteSchema.
Public methodSupported by the XNA FrameworkWriteXml(TextWriter, XmlWriteMode)Writes the current data, and optionally the schema, for the DataSet using the specified TextWriter and XmlWriteMode. To write the schema, set the value for the mode parameter to WriteSchema.
Public methodSupported by the XNA FrameworkWriteXml(XmlWriter, XmlWriteMode)Writes the current data, and optionally the schema, for the DataSet using the specified XmlWriter and XmlWriteMode. To write the schema, set the value for the mode parameter to WriteSchema.
Public methodSupported by the XNA FrameworkWriteXmlSchema(Stream)Writes the DataSet structure as an XML schema to the specified System.IO.Stream object.
Public methodSupported by the XNA FrameworkWriteXmlSchema(String)Writes the DataSet structure as an XML schema to a file.
Public methodSupported by the XNA FrameworkWriteXmlSchema(TextWriter)Writes the DataSet structure as an XML schema to the specified TextWriter object.
Public methodSupported by the XNA FrameworkWriteXmlSchema(XmlWriter)Writes the DataSet structure as an XML schema to an XmlWriter object.
Public methodWriteXmlSchema(Stream, Converter<Type, String>)Writes the DataSet structure as an XML schema to the specified System.IO.Stream object.
Public methodWriteXmlSchema(String, Converter<Type, String>)Writes the DataSet structure as an XML schema to a file.
Public methodWriteXmlSchema(TextWriter, Converter<Type, String>)Writes the DataSet structure as an XML schema to the specified TextWriter.
Public methodWriteXmlSchema(XmlWriter, Converter<Type, String>)Writes the DataSet structure as an XML schema to the specified XmlWriter.
Top

  NameDescription
Public eventSupported by the XNA FrameworkDisposedAdds an event handler to listen to the Disposed event on the component. (Inherited from MarshalByValueComponent.)
Public eventSupported by the XNA FrameworkInitializedOccurs after the DataSet is initialized.
Public eventSupported by the XNA FrameworkMergeFailedOccurs when a target and source DataRow have the same primary key value, and EnforceConstraints is set to true.
Top

  NameDescription
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIListSource.ContainsListCollectionFor a description of this member, see IListSource.ContainsListCollection.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIListSource.GetListFor a description of this member, see IListSource.GetList.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIXmlSerializable.GetSchemaFor a description of this member, see IXmlSerializable.GetSchema.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIXmlSerializable.ReadXmlFor a description of this member, see IXmlSerializable.ReadXml.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIXmlSerializable.WriteXmlFor a description of this member, see IXmlSerializable.WriteXml.
Top

The DataSet, which is an in-memory cache of data retrieved from a data source, is a major component of the ADO.NET architecture. The DataSet consists of a collection of DataTable objects that you can relate to each other with DataRelation objects. You can also enforce data integrity in the DataSet by using the UniqueConstraint and ForeignKeyConstraint objects. For further details about working with DataSet objects, see DataSets, DataTables, and DataViews (ADO.NET).

Whereas DataTable objects contain the data, the DataRelationCollection allows you to navigate though the table hierarchy. The tables are contained in a DataTableCollection accessed through the Tables property. When accessing DataTable objects, note that they are conditionally case sensitive. For example, if one DataTable is named "mydatatable" and another is named "Mydatatable", a string used to search for one of the tables is regarded as case sensitive. However, if "mydatatable" exists and "Mydatatable" does not, the search string is regarded as case insensitive. For more information about working with DataTable objects, see Creating a DataTable (ADO.NET).

A DataSet can read and write data and schema as XML documents. The data and schema can then be transported across HTTP and used by any application, on any platform that is XML-enabled. You can save the schema as an XML schema with the WriteXmlSchema method, and both schema and data can be saved using the WriteXml method. To read an XML document that includes both schema and data, use the ReadXml method.

In a typical multiple-tier implementation, the steps for creating and refreshing a DataSet, and in turn, updating the original data are to:

  1. Build and fill each DataTable in a DataSet with data from a data source using a DataAdapter.

  2. Change the data in individual DataTable objects by adding, updating, or deleting DataRow objects.

  3. Invoke the GetChanges method to create a second DataSet that features only the changes to the data.

  4. Call the Update method of the DataAdapter, passing the second DataSet as an argument.

  5. Invoke the Merge method to merge the changes from the second DataSet into the first.

  6. Invoke the AcceptChanges on the DataSet. Alternatively, invoke RejectChanges to cancel the changes.

NoteNote

The DataSet and DataTable objects inherit from MarshalByValueComponent, and support the ISerializable interface for remoting. These are the only ADO.NET objects that can be remoted.

NoteNote

Classes inherited from DataSet are not finalized by the garbage collector, because the finalizer has been suppressed in DataSet. The derived class can call the ReRegisterForFinalize method in its constructor to allow the class to be finalized by the garbage collector.

TopicLocation
How to: Create a Typed DatasetData Access in Visual Studio
Walkthrough: Displaying Hierarchical Data in a TreeView ControlBuilding ASP .NET Web Applications in Visual Studio

The following example consists of several methods that, combined, create and fill a DataSet from the Northwind database.


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";
        }
    }
}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

This type is safe for multithreaded read operations. You must synchronize any write operations.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

Show:
© 2014 Microsoft