Поделиться через


DataSet Класс

Определение

Представляет кэш в памяти для данных.

public ref class DataSet : System::ComponentModel::MarshalByValueComponent, System::ComponentModel::IListSource, System::ComponentModel::ISupportInitialize, System::ComponentModel::ISupportInitializeNotification, System::Runtime::Serialization::ISerializable, System::Xml::Serialization::IXmlSerializable
public ref class DataSet : System::ComponentModel::MarshalByValueComponent, System::ComponentModel::IListSource, System::ComponentModel::ISupportInitialize, System::Runtime::Serialization::ISerializable, System::Xml::Serialization::IXmlSerializable
public ref class DataSet : System::ComponentModel::MarshalByValueComponent, System::ComponentModel::IListSource, System::ComponentModel::ISupportInitializeNotification, System::Runtime::Serialization::ISerializable, System::Xml::Serialization::IXmlSerializable
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable
[System.Serializable]
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable
[System.Serializable]
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable
public class DataSet : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable
type DataSet = class
    inherit MarshalByValueComponent
    interface IListSource
    interface ISupportInitialize
    interface ISupportInitializeNotification
    interface ISerializable
    interface IXmlSerializable
[<System.Serializable>]
type DataSet = class
    inherit MarshalByValueComponent
    interface IListSource
    interface IXmlSerializable
    interface ISupportInitialize
    interface ISerializable
[<System.Serializable>]
type DataSet = class
    inherit MarshalByValueComponent
    interface IListSource
    interface IXmlSerializable
    interface ISupportInitializeNotification
    interface ISupportInitialize
    interface ISerializable
Public Class DataSet
Inherits MarshalByValueComponent
Implements IListSource, ISerializable, ISupportInitialize, ISupportInitializeNotification, IXmlSerializable
Public Class DataSet
Inherits MarshalByValueComponent
Implements IListSource, ISerializable, ISupportInitialize, IXmlSerializable
Public Class DataSet
Inherits MarshalByValueComponent
Implements IListSource, ISerializable, ISupportInitializeNotification, IXmlSerializable
Наследование
Атрибуты
Реализации

Примеры

Следующий пример состоит из нескольких методов, которые в сочетании создают и заполняют DataSet из базы данных Northwind .

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";
        }
    }
}
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 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 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 New SqlDataAdapter()
            productsAdapter.TableMappings.Add("Table", "Products")

            Dim productsCommand As 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 New 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

Комментарии

Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для DataSet.

Конструкторы

DataSet()

Инициализирует новый экземпляр класса DataSet.

DataSet(SerializationInfo, StreamingContext)
Устаревшие..

Инициализирует новый экземпляр класса DataSet с сериализованными данными.

DataSet(SerializationInfo, StreamingContext, Boolean)
Устаревшие..

Инициализирует новый экземпляр класса DataSet с сериализованными данными.

DataSet(String)

Инициализирует новый экземпляр класса DataSet с заданным именем.

Свойства

CaseSensitive

Возвращает или задает значение, определяющее, учитывается ли регистр при сравнении строк в объектах DataTable.

Container

Возвращает контейнер для компонента.

(Унаследовано от MarshalByValueComponent)
DataSetName

Возвращает или задает имя текущего DataSet.

DefaultViewManager

Получает новое представление данных класса DataSet для осуществления фильтрации, поиска или перехода с помощью настраиваемого класса DataViewManager.

DesignMode

Возвращает значение, показывающее, находится ли компонент в настоящий момент в режиме разработки.

(Унаследовано от MarshalByValueComponent)
EnforceConstraints

Возвращает или задает значение, определяющее соблюдение правил ограничения при попытке совершения операции обновления.

Events

Возвращает список обработчиков событий, которые прикреплены к этому компоненту.

(Унаследовано от MarshalByValueComponent)
ExtendedProperties

Возвращает коллекцию настраиваемых данных пользователя, связанных с DataSet.

HasErrors

Получает значение, определяющее наличие ошибок в любом из объектов DataTable в классе DataSet.

IsInitialized

Получает значение, указывающее, инициализирована ли таблица DataSet.

Locale

Возвращает или задает сведения о языке, используемые для сравнения строк таблицы.

Namespace

Возвращает или задает пространство имен DataSet.

Prefix

Возвращает или задает префикс XML, который является псевдонимом пространства имен класса DataSet.

Relations

Получает коллекцию соотношений, связывающих таблицы и позволяющих переходить от родительских таблиц к дочерним.

RemotingFormat

Возвращает или задает формат сериализации для объекта , используемого DataSet во время удаленного взаимодействия.

SchemaSerializationMode

Возвращает или задает объект SchemaSerializationMode для DataSet.

Site

Возвращает или задает тип ISite для объекта DataSet.

Tables

Возвращает коллекцию таблиц класса DataSet.

Методы

AcceptChanges()

Сохраняет все изменения, внесенные в класс DataSet после его загрузки или после последнего вызова метода AcceptChanges().

BeginInit()

Начинает инициализацию DataSet, используемого в форме или другим компонентом. Инициализация происходит во время выполнения.

Clear()

Удаляет из класса DataSet любые данные путем удаления всех строк во всех таблицах.

Clone()

Копирует структуру класса DataSet, включая все схемы, соотношения и ограничения объекта DataTable. Данные не копируются.

Copy()

Копирует структуру и данные для DataSet.

CreateDataReader()

Возвращает объект DataTableReader с одним результирующим набором для каждой последовательности DataTable в той же последовательности, в которой таблицы отображаются в коллекции Tables.

CreateDataReader(DataTable[])

Возвращает объект DataTableReader с одним результирующим набором для каждой таблицы DataTable.

DetermineSchemaSerializationMode(SerializationInfo, StreamingContext)

Определяет SchemaSerializationMode для DataSet.

DetermineSchemaSerializationMode(XmlReader)

Определяет SchemaSerializationMode для DataSet.

Dispose()

Освобождает все ресурсы, занятые модулем MarshalByValueComponent.

(Унаследовано от MarshalByValueComponent)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом MarshalByValueComponent, а при необходимости освобождает также управляемые ресурсы.

(Унаследовано от MarshalByValueComponent)
EndInit()

Завершает инициализацию DataSet, используемого в форме или другим компонентом. Инициализация происходит во время выполнения.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetChanges()

Получает копию класса DataSet, содержащую все изменения, внесенные после его загрузки или после последнего вызова метода AcceptChanges().

GetChanges(DataRowState)

Получает копию таблицы DataSet, содержащую все изменения, внесенные после ее последней загрузки или после вызова метода AcceptChanges() и отфильтрованные по параметру DataRowState.

GetDataSetSchema(XmlSchemaSet)

Получает копию XmlSchemaSet для DataSet.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)
Устаревшие..

Заполняет объект сведений о сериализации данными, необходимыми для сериализации DataSet.

GetSchemaSerializable()

Возвращает сериализуемый экземпляр XmlSchema.

GetSerializationData(SerializationInfo, StreamingContext)

Десериализует данные таблицы из двоичного потока или XML-потока.

GetService(Type)

Возвращает средство реализации объекта IServiceProvider.

(Унаследовано от MarshalByValueComponent)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetXml()

Возвращает XML-представление данных, хранящихся в классе DataSet.

GetXmlSchema()

Возвращает XML-схему для XML-представления данных, хранящихся в классе DataSet.

HasChanges()

Получает значение, определяющее наличие изменений в классе DataSet, включая добавление, удаление или изменение строк.

HasChanges(DataRowState)

Получает значение, определяющее наличие изменений в классе DataSet, включая добавление, удаление или изменение строк, отфильтрованных по типу DataRowState.

InferXmlSchema(Stream, String[])

Применяет XML-схему из указанного объекта Stream к объекту DataSet.

InferXmlSchema(String, String[])

Применяет XML-схему из указанного файла к классу DataSet.

InferXmlSchema(TextReader, String[])

Применяет XML-схему из указанного объекта TextReader к объекту DataSet.

InferXmlSchema(XmlReader, String[])

Применяет XML-схему из указанного объекта XmlReader к объекту DataSet.

InitializeDerivedDataSet()

Десериализует все данные таблицы DataSet из двоичного потока или XML-потока.

IsBinarySerialized(SerializationInfo, StreamingContext)

Анализирует формат сериализованного представления набора данных DataSet.

Load(IDataReader, LoadOption, DataTable[])

Заполняет набор данных DataSet значениями из источника данных с помощью предоставляемого объекта IDataReader, использующего массив экземпляров DataTable для предоставления сведений о схеме и пространстве имен.

Load(IDataReader, LoadOption, FillErrorEventHandler, DataTable[])

Заполняет набор данных DataSet значениями из источника данных с помощью предоставляемого объекта IDataReader, использующего массив экземпляров DataTable для предоставления сведений о схеме и пространстве имен.

Load(IDataReader, LoadOption, String[])

Заполняет набор данных DataSet значениями из источника данных с помощью предоставляемого объекта IDataReader, используя массив строк для предоставления имен таблиц в наборе данных DataSet.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Merge(DataRow[])

Осуществляет слияние массива объектов DataRow и текущего класса DataSet.

Merge(DataRow[], Boolean, MissingSchemaAction)

Осуществляет слияние массива объектов DataRow и текущего объекта DataSet, сохраняя или удаляя любые изменения в этом объекте DataSet и обрабатывая несовместимую схему в соответствии с заданными аргументами.

Merge(DataSet)

Осуществляет слияние указанного объекта DataSet и его схемы с текущим объектом DataSet.

Merge(DataSet, Boolean)

Осуществляет слияние указанного класса DataSet и его схемы с текущим объектом DataSet, сохраняя или удаляя любые изменения в этом объекте DataSet в соответствии с заданным аргументом.

Merge(DataSet, Boolean, MissingSchemaAction)

Осуществляет слияние указанного класса DataSet и его схемы с текущим набором данных DataSet, сохраняя или удаляя любые изменения в текущем наборе данных DataSet и обрабатывая несовместимую схему в соответствии с заданными аргументами.

Merge(DataTable)

Осуществляет слияние указанного объекта DataTable и его схемы с текущим объектом DataSet.

Merge(DataTable, Boolean, MissingSchemaAction)

Осуществляет слияние указанного класса DataTable и его схемы с текущим объектом DataSet, сохраняя или удаляя любые изменения в этом объекте DataSet и обрабатывая несовместимую схему в соответствии с заданными аргументами.

OnPropertyChanging(PropertyChangedEventArgs)

Вызывает событие OnPropertyChanging(PropertyChangedEventArgs).

OnRemoveRelation(DataRelation)

Происходит при удалении объекта DataRelation из DataTable.

OnRemoveTable(DataTable)

Происходит при удалении объекта DataTable из DataSet.

RaisePropertyChanging(String)

Посылает уведомление об изменении указанного свойства DataSet.

ReadXml(Stream)

Считывает XML-схему и данные в DataSet, используя указанный класс Stream.

ReadXml(Stream, XmlReadMode)

Считывает XML-схему и данные в DataSet, используя указанные объекты Stream и XmlReadMode.

ReadXml(String)

Считывает XML-схему и данные в DataSet, используя указанный файл.

ReadXml(String, XmlReadMode)

Считывает XML-схему и данные в DataSet, используя указанный файл и XmlReadMode.

ReadXml(TextReader)

Считывает XML-схему и данные в DataSet, используя указанный класс TextReader.

ReadXml(TextReader, XmlReadMode)

Считывает XML-схему и данные в DataSet, используя указанные объекты TextReader и XmlReadMode.

ReadXml(XmlReader)

Считывает XML-схему и данные в DataSet, используя указанный класс XmlReader.

ReadXml(XmlReader, XmlReadMode)

Считывает XML-схему и данные в DataSet, используя указанные объекты XmlReader и XmlReadMode.

ReadXmlSchema(Stream)

Считывает XML-схему из указанного класса Stream в класс DataSet.

ReadXmlSchema(String)

Считывает XML-схему из указанного файла в класс DataSet.

ReadXmlSchema(TextReader)

Считывает XML-схему из указанного класса TextReader в класс DataSet.

ReadXmlSchema(XmlReader)

Считывает XML-схему из указанного класса XmlReader в класс DataSet.

ReadXmlSerializable(XmlReader)

Игнорирует атрибуты и возвращает пустой DataSet.

RejectChanges()

Отменяет все изменения, внесенные в класс DataSet после его создания или после последнего вызова метода AcceptChanges().

Reset()

Очищает все таблицы и удаляет все связи, внешние ограничения и таблицы из DataSet. Для восстановления исходного состояния класса Reset() необходимо переопределить метод DataSet в подклассах.

ShouldSerializeRelations()

Получает значение, определяющее необходимость сохранения значения свойства Relations.

ShouldSerializeTables()

Получает значение, определяющее необходимость сохранения значения свойства Tables.

ToString()

Возвращает объект String, содержащий имя Component, если оно есть. Этот метод не следует переопределять.

(Унаследовано от MarshalByValueComponent)
WriteXml(Stream)

Записывает текущие данные для DataSet с помощью указанного объекта Stream.

WriteXml(Stream, XmlWriteMode)

Записывает текущие данные и по возможности схему для DataSet с помощью указанных Stream и XmlWriteMode. Чтобы записать схему, задайте в параметре mode значение WriteSchema.

WriteXml(String)

Записывает текущие данные для DataSet в указанный файл.

WriteXml(String, XmlWriteMode)

Записывает текущие данные и по возможности схему для DataSet в указанный файл с помощью заданного объекта XmlWriteMode. Чтобы записать схему, задайте в параметре mode значение WriteSchema.

WriteXml(TextWriter)

Записывает текущие данные для DataSet с помощью указанного объекта TextWriter.

WriteXml(TextWriter, XmlWriteMode)

Записывает текущие данные и по возможности схему для DataSet с помощью указанных TextWriter и XmlWriteMode. Чтобы записать схему, задайте в параметре mode значение WriteSchema.

WriteXml(XmlWriter)

Записывает текущие данные для DataSet в указанный класс XmlWriter.

WriteXml(XmlWriter, XmlWriteMode)

Записывает текущие данные и по возможности схему для DataSet с помощью указанных XmlWriter и XmlWriteMode. Чтобы записать схему, задайте в параметре mode значение WriteSchema.

WriteXmlSchema(Stream)

Записывает структуру DataSet в качестве XML-схемы для указанного объекта Stream.

WriteXmlSchema(Stream, Converter<Type,String>)

Записывает структуру DataSet в качестве XML-схемы для указанного объекта Stream.

WriteXmlSchema(String)

Записывает структуру класса DataSet в виде XML-схемы в файл.

WriteXmlSchema(String, Converter<Type,String>)

Записывает структуру класса DataSet в виде XML-схемы в файл.

WriteXmlSchema(TextWriter)

Записывает структуру DataSet в качестве XML-схемы для указанного объекта TextWriter.

WriteXmlSchema(TextWriter, Converter<Type,String>)

Записывает структуру DataSet в виде схемы XML для указанного объекта TextWriter.

WriteXmlSchema(XmlWriter)

Записывает структуру класса DataSet в виде XML-схемы в объект XmlWriter.

WriteXmlSchema(XmlWriter, Converter<Type,String>)

Записывает структуру DataSet в виде схемы XML для указанного объекта XmlWriter.

События

Disposed

Добавляет обработчик события для ожидания события Disposed в компоненте.

(Унаследовано от MarshalByValueComponent)
Initialized

Происходит после инициализации таблицы DataSet.

MergeFailed

Происходит, если значения первичного ключа конечного и основного объектов DataRow совпадают, а свойство EnforceConstraints имеет значение true.

Явные реализации интерфейса

IListSource.ContainsListCollection

Описание этого члена см. в разделе ContainsListCollection.

IListSource.GetList()

Описание этого члена см. в разделе GetList().

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Заполняет объект сведений о сериализации данными, необходимыми для сериализации DataSet.

IXmlSerializable.GetSchema()

Описание этого члена см. в разделе GetSchema().

IXmlSerializable.ReadXml(XmlReader)

Описание этого члена см. в разделе ReadXml(XmlReader).

IXmlSerializable.WriteXml(XmlWriter)

Описание этого члена см. в разделе WriteXml(XmlWriter).

Методы расширения

GetKeyedService<T>(IServiceProvider, Object)

Возвращает службу типа T из IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

Возвращает перечисление служб типа serviceType из IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Возвращает перечисление служб типа T из IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

Возвращает службу типа serviceType из IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

Возвращает службу типа T из IServiceProvider.

CreateAsyncScope(IServiceProvider)

Создает интерфейс AsyncServiceScope, который может использоваться для разрешения служб с ограниченной областью.

CreateScope(IServiceProvider)

Создает интерфейс IServiceScope, который может использоваться для разрешения служб с ограниченной областью.

GetRequiredService(IServiceProvider, Type)

Возвращает службу типа serviceType из IServiceProvider.

GetRequiredService<T>(IServiceProvider)

Возвращает службу типа T из IServiceProvider.

GetService<T>(IServiceProvider)

Возвращает службу типа T из IServiceProvider.

GetServices(IServiceProvider, Type)

Возвращает перечисление служб типа serviceType из IServiceProvider.

GetServices<T>(IServiceProvider)

Возвращает перечисление служб типа T из IServiceProvider.

GetFakeLogCollector(IServiceProvider)

Возвращает объект , который собирает записи журнала, отправляемые в поддельные средства ведения журнала.

GetFakeRedactionCollector(IServiceProvider)

Возвращает экземпляр сборщика поддельных средств редактирования из контейнера внедрения зависимостей.

Применяется к

Потокобезопасность

Этот тип является безопасным для многопоточных операций чтения. Необходимо синхронизировать все операции записи.

См. также раздел