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
[<System.Serializable>]
type DataSet = class
    inherit MarshalByValueComponent
    interface IListSource
    interface IXmlSerializable
    interface ISupportInitializeNotification
    interface ISerializable
    interface ISupportInitialize
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

Комментарии

DataSet, который представляет собой кэш данных, получаемый из источника данных в памяти, является основным компонентом архитектуры ADO.NET. Объект DataSet состоит из коллекции DataTable объектов, которые можно связать друг с другом с DataRelation объектами. Целостность данных в можно также обеспечить DataSet с помощью UniqueConstraint ForeignKeyConstraint объектов и. Дополнительные сведения о работе с DataSet объектами см. в разделе наборы данных, DataTables и DataSets.

В то время как DataTable объекты содержат данные, объект DataRelationCollection позволяет перемещаться по иерархии таблиц. Таблицы содержатся в DataTableCollection доступе через Tables свойство. При доступе к DataTable объектам Обратите внимание, что они чувствительны к регистру. Например, если один DataTable из них имеет имя «Mydatatable», а другой — «Mydatatable», то строка, используемая для поиска одной из таблиц, считается с учетом регистра. Однако если "Mydatatable" существует, а "Mydatatable" — нет, то строка поиска считается нечувствительной к регистру. Дополнительные сведения о работе с DataTable объектами см. в разделе Создание таблицыданных.

DataSetМожет считывать и записывать данные и схему в виде XML-документов. Затем данные и схема можно переносить по протоколу HTTP и использовать в любом приложении на любой платформе, поддерживающей XML. Схему можно сохранить в виде XML-схемы с помощью WriteXmlSchema метода, а схема и данные могут быть сохранены с использованием WriteXml метода. Для чтения XML-документа, включающего как схему, так и данные, используйте ReadXml метод.

В типичной многоуровневой реализации шаги для создания и обновления и, DataSet в свою очередь, обновления исходных данных:

  1. Создайте и заполните все DataTable в DataSet с помощью данных из источника данных с помощью DataAdapter .

  2. Изменение данных в отдельных DataTable объектах путем добавления, обновления или удаления DataRow объектов.

  3. Вызовите GetChanges метод, чтобы создать секунду DataSet , которая будет выполнять только изменения данных.

  4. Вызовите Update метод объекта DataAdapter , передав второй в DataSet качестве аргумента.

  5. Вызовите Merge метод, чтобы объединить изменения из второй DataSet в первый.

  6. Вызов метода AcceptChanges для DataSet . Кроме того, можно вызвать, RejectChanges чтобы отменить изменения.

Примечание

DataSetОбъекты и DataTable наследуются от и MarshalByValueComponent поддерживают ISerializable интерфейс для удаленного взаимодействия. Это единственные объекты ADO.NET, которые разрешают удаленное взаимодействие.

Примечание

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

Замечания по безопасности

Сведения о наборах данных и безопасности DataTable см. в руководстве по безопасности.

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

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

Возвращает или задает объект SerializationFormat для набора данных 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).

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

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

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

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