The DataSet contains a collection of
DataTable objects that define the schema and
contain the data for each table (Tables ). The
DataSet also contains a collection of
DataRelation objects that define the relationships
between the tables (Relations ). The
DataSet references a
DataViewManager that specifies how views should be
created when data binding to a control
(DefaultViewManager ). The
DataSet is often described as an in-memory cache
of relational data.
The DataSet is the only ADO.NET object with the
ability to serialize its content to an XML file (using the
WriteXml( ) and WriteXmlSchema(
) methods) or to populate itself from an existing schema or
XML file (using the ReadXmlSchema( ) and
ReadXml( ) methods). Alternatively, you can use
GetXml( ) and GetXmlSchema( )
to retrieve the XML data and schema information as a string.
You can delete the data in a DataSet without
affecting the schema (using Clear( ) ), create a
duplicate DataSet with the same table structure
and meta data (using Clone( ) ) or with the same
structure and content (using Copy( ) ), merge two
DataSet objects (using Merge( )
), or check the entire DataSet for errors (using
HasErrors ).
One of the most important features of the DataSet
is its version-tracking ability. By default, each
DataRow object in the DataSet
stores enough information to track any modifications made to it, and
whether it is scheduled for insertion or deletion when reconciled
with the data source. The DataAdapter uses this
information to reconcile changes and then calls
AcceptChanges( ) on each
DataRow to replace the original values with the
current values. You can retrieve a DataSet with
the same schema that contains only modified, deleted, or inserted
rows using the GetChanges( ) method.
public class DataSet : System.ComponentModel.MarshalByValueComponent ,
System.ComponentModel.IListSource, System.Xml.Serialization.IXmlSerializable,
System.ComponentModel.ISupportInitialize, System.Runtime.Serialization.
ISerializable {
// Public Constructors
public DataSet( );
public DataSet( string dataSetName);
// Protected Constructors
protected DataSet(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context);
// Public Instance Properties
public bool CaseSensitive{set; get; }
public string DataSetName{set; get; }
public DataViewManager DefaultViewManager{get; }
public bool EnforceConstraints{set; get; }
public PropertyCollection ExtendedProperties{get; }
public bool HasErrors{get; }
public CultureInfo Locale{set; get; }
public string Namespace{set; get; }
public string Prefix{set; get; }
public DataRelationCollection Relations{get; }
public override ISite Site{set; get; } // overrides System.ComponentModel.MarshalByValueComponent
public DataTableCollection Tables{get; }
// Public Instance Methods
public void AcceptChanges( );
public void BeginInit( ); // implements System.ComponentModel.ISupportInitialize
public void Clear( );
public virtual DataSet Clone( );
public DataSet Copy( );
public void EndInit( ); // implements System.ComponentModel.ISupportInitialize
public DataSet GetChanges( );
public DataSet GetChanges( DataRowState rowStates);
public string GetXml( );
public string GetXmlSchema( );
public bool HasChanges( );
public bool HasChanges( DataRowState rowStates);
public void InferXmlSchema(System.IO.Stream stream, string[ ] nsArray);
public void InferXmlSchema(string fileName, string[ ] nsArray);
public void InferXmlSchema(System.IO.TextReader reader, string[ ] nsArray);
public void InferXmlSchema(System.Xml.XmlReader reader, string[ ] nsArray);
public void Merge( DataRow[ ] rows);
public void Merge(DataRow[ ] rows, bool preserveChanges, MissingSchemaAction missingSchemaAction);
public void Merge( DataSet dataSet);
public void Merge( DataSet dataSet, bool preserveChanges);
public void Merge(DataSet dataSet, bool preserveChanges, MissingSchemaAction missingSchemaAction);
public void Merge( DataTable table);
public void Merge(DataTable table, bool preserveChanges, MissingSchemaAction missingSchemaAction);
public XmlReadMode ReadXml( System.IO.Stream stream);
public XmlReadMode ReadXml(System.IO.Stream stream, XmlReadMode mode);
public XmlReadMode ReadXml( string fileName);
public XmlReadMode ReadXml(string fileName, XmlReadMode mode);
public XmlReadMode ReadXml( System.IO.TextReader reader);
public XmlReadMode ReadXml(System.IO.TextReader reader, XmlReadMode mode);
public XmlReadMode ReadXml( System.Xml.XmlReader reader);
public XmlReadMode ReadXml(System.Xml.XmlReader reader, XmlReadMode mode);
public void ReadXmlSchema( System.IO.Stream stream);
public void ReadXmlSchema( string fileName);
public void ReadXmlSchema( System.IO.TextReader reader);
public void ReadXmlSchema( System.Xml.XmlReader reader);
public virtual void RejectChanges( );
public virtual void Reset( );
public void WriteXml( System.IO.Stream stream);
public void WriteXml(System.IO.Stream stream, XmlWriteMode mode);
public void WriteXml( string fileName);
public void WriteXml( string fileName, XmlWriteMode mode);
public void WriteXml( System.IO.TextWriter writer);
public void WriteXml(System.IO.TextWriter writer, XmlWriteMode mode);
public void WriteXml( System.Xml.XmlWriter writer); // implements System.Xml.Serialization.IXmlSerializable
public void WriteXml(System.Xml.XmlWriter writer, XmlWriteMode mode);
public void WriteXmlSchema( System.IO.Stream stream);
public void WriteXmlSchema( string fileName);
public void WriteXmlSchema( System.IO.TextWriter writer);
public void WriteXmlSchema( System.Xml.XmlWriter writer);
// Protected Instance Methods
protected virtual XmlSchema GetSchemaSerializable( );
protected void GetSerializationData(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context);
protected internal virtual void OnPropertyChanging(System.ComponentModel.PropertyChangedEventArgs pcevent);
protected virtual void OnRemoveRelation(DataRelation relation);
protected virtual void OnRemoveTable( DataTable table);
protected internal void RaisePropertyChanging(string name);
protected virtual void ReadXmlSerializable(System.Xml.XmlReader reader);
protected virtual bool ShouldSerializeRelations( );
protected virtual bool ShouldSerializeTables( );
// Events
public event MergeFailedEventHandler MergeFailed;
}