DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable Method

Определение

Возвращает объект DataTable, содержащий копии объектов DataRow при заданном входном объекте IEnumerable<T>.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object.

Перегрузки

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

Возвращает объект DataTable, содержащий копии объектов DataRow при заданном входном объекте IEnumerable<T> и универсальном параметре T, равном DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

Возвращает объект DataTable, содержащий копии объектов DataRow при заданном входном объекте IEnumerable<T> и универсальном параметре T, равном DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

public:
generic <typename T>
 where T : System::Data::DataRow[System::Runtime::CompilerServices::Extension]
 static System::Data::DataTable ^ CopyToDataTable(System::Collections::Generic::IEnumerable<T> ^ source);
public static System.Data.DataTable CopyToDataTable<T> (this System.Collections.Generic.IEnumerable<T> source) where T : System.Data.DataRow;
static member CopyToDataTable : seq<'T (requires 'T :> System.Data.DataRow)> -> System.Data.DataTable (requires 'T :> System.Data.DataRow)
<Extension()>
Public Function CopyToDataTable(Of T As DataRow) (source As IEnumerable(Of T)) As DataTable

Параметры типа

T

Тип объектов в исходной последовательности, обычно DataRow.The type of objects in the source sequence, typically DataRow.

Параметры

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Исходная последовательность IEnumerable<T>.The source IEnumerable<T> sequence.

Возвраты

Объект DataTable, содержащий входную последовательность как тип объектов DataRow.A DataTable that contains the input sequence as the type of DataRow objects.

Исключения

Исходная последовательность IEnumerable<T> имеет значение null и создание новой таблицы невозможно.The source IEnumerable<T> sequence is null and a new table cannot be created.

Объект DataRow в исходной последовательности находится в состоянии Deleted.A DataRow in the source sequence has a state of Deleted.

Исходная последовательность не содержит объектов DataRow.The source sequence does not contain any DataRow objects.

Объект DataRow в исходной последовательности имеет значение null.A DataRow in the source sequence is null.

Примеры

Следующий пример запрашивает таблицу SalesOrderHeader для заказов после 8 августа 2001 и использует CopyToDataTable метод для DataTable создания из этого запроса.The following example queries the SalesOrderHeader table for orders after August 8, 2001, and uses the CopyToDataTable method to create a DataTable from that query. Затем объект DataTable привязывается к источнику BindingSource, который является посредником для объекта DataGridView.The DataTable is then bound to a BindingSource, which acts as proxy for a DataGridView.

// Bind the System.Windows.Forms.DataGridView object
// to the System.Windows.Forms.BindingSource object.
dataGridView.DataSource = bindingSource;

// Fill the DataSet.
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);

DataTable orders = ds.Tables["SalesOrderHeader"];

// Query the SalesOrderHeader table for orders placed 
// after August 8, 2001.
IEnumerable<DataRow> query =
    from order in orders.AsEnumerable()
    where order.Field<DateTime>("OrderDate") > new DateTime(2001, 8, 1)
    select order;

// Create a table from the query.
DataTable boundTable = query.CopyToDataTable<DataRow>();

// Bind the table to a System.Windows.Forms.BindingSource object, 
// which acts as a proxy for a System.Windows.Forms.DataGridView object.
bindingSource.DataSource = boundTable;
' Bind the System.Windows.Forms.DataGridView object
' to the System.Windows.Forms.BindingSource object.
dataGridView.DataSource = bindingSource

' Fill the DataSet.
Dim ds As New DataSet()
ds.Locale = CultureInfo.InvariantCulture
' See the FillDataSet method in the Loading Data Into a DataSet topic.
FillDataSet(ds)

Dim orders As DataTable = ds.Tables("SalesOrderHeader")

' Query the SalesOrderHeader table for orders placed 
'  after August 8, 2001.
Dim query = _
    From order In orders.AsEnumerable() _
    Where order.Field(Of DateTime)("OrderDate") > New DateTime(2001, 8, 1) _
    Select order

' Create a table from the query.
Dim boundTable As DataTable = query.CopyToDataTable()

' Bind the table to a System.Windows.Forms.BindingSource object, 
' which acts as a proxy for a System.Windows.Forms.DataGridView object.
bindingSource.DataSource = boundTable

Комментарии

Параметр T входного параметра source может иметь только тип DataRow или тип, производный от DataRow.The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

Входная последовательность может быть любым IEnumerable<T> источником, а не только запросом или запросом к DataTable.The input sequence can be any IEnumerable<T> source, not only a query or a query over a DataTable. Обратите внимание, что если исходная последовательность является запросом, вызов этого оператора приведет к немедленному выполнению.Note that if the source sequence is a query, calling this operator will force immediate execution. Перечисление исходных последовательностей может также привести к возникновению исключений.Enumerating the source sequence can also cause exceptions to be thrown.

Схема целевой таблицы основана на схеме первой DataRow строки исходной последовательности.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Метаданные таблицы извлекаются из DataRow метаданных и значений таблицы из значений DataRowстолбцов.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Для типизированных DataTableтипов не сохраняются.For a typed DataTable, types are not preserved. Данные и схема передаются, но результирующие строки выходной таблицы не будут иметь типизированный DataRow тип.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. DataRow DataTableСвойства RowState и RowError не сохраняются во время копирования из источника в возвращаемый объект.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Если в источнике DataRowобнаружена пустая ссылка или тип Nullable со значением null , этот метод заменяет значение в назначении DataTable значением Value.When a null reference or nullable type with a value of null is found in a source DataRow, this method replaces the value in the destination DataTable with a value of Value.

Созданная таблица, возвращаемая методом, имеет имя таблицы по умолчанию.The generated table returned by the method has the default table name. Если вы хотите присвоить DataTableимя, присоединить его DataSetк или выполнить любую другую DataTable операцию, необходимо сделать это после того, как таблица будет создана и возвращена.If you want to name the DataTable, attach it to a DataSet, or perform any other DataTable specific operation, you must do so after the table is created and returned.

Дополнительные сведения см. в разделе Создание таблицы данных из запроса.For more information, see Creating a DataTable From a Query.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

public:
generic <typename T>
 where T : System::Data::DataRow[System::Runtime::CompilerServices::Extension]
 static void CopyToDataTable(System::Collections::Generic::IEnumerable<T> ^ source, System::Data::DataTable ^ table, System::Data::LoadOption options);
public static void CopyToDataTable<T> (this System.Collections.Generic.IEnumerable<T> source, System.Data.DataTable table, System.Data.LoadOption options) where T : System.Data.DataRow;
static member CopyToDataTable : seq<'T (requires 'T :> System.Data.DataRow)> * System.Data.DataTable * System.Data.LoadOption -> unit (requires 'T :> System.Data.DataRow)
<Extension()>
Public Sub CopyToDataTable(Of T As DataRow) (source As IEnumerable(Of T), table As DataTable, options As LoadOption)

Параметры типа

T

Тип объектов в исходной последовательности, обычно DataRow.The type of objects in the source sequence, typically DataRow.

Параметры

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Исходная последовательность IEnumerable<T>.The source IEnumerable<T> sequence.

table
DataTable DataTable DataTable DataTable

DataTable — объект назначения.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Перечисление LoadOption, указывающее параметры загрузки DataTable.A LoadOption enumeration that specifies the DataTable load options.

Исключения

Копируемые объекты DataRow не соответствуют схеме объекта назначения DataTable.The copied DataRow objects do not fit the schema of the destination DataTable.

Исходная последовательность IEnumerable<T> имеет значение null либо конечный объект DataTable равен null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Объект DataRow в исходной последовательности находится в состоянии Deleted.A DataRow in the source sequence has a state of Deleted.

Исходная последовательность не содержит объектов DataRow.The source sequence does not contain any DataRow objects.

Объект DataRow в исходной последовательности имеет значение null.A DataRow in the source sequence is null.

Комментарии

Параметр T входного параметра source может иметь только тип DataRowили тип, производный от DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

Входной последовательностью может быть IEnumerable<T> любой источник, а не только запрос к DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Обратите внимание, что если исходная последовательность является запросом, вызов этого оператора приведет к немедленному выполнению.Note that if the source sequence is a query, calling this operator will force immediate execution. Перечисление исходных последовательностей может также привести к возникновению исключений.Enumerating the source sequence can also cause exceptions to be thrown.

Схема целевой таблицы основана на схеме первой DataRow строки исходной последовательности.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Метаданные таблицы извлекаются из DataRow метаданных и значений таблицы из значений DataRowстолбцов.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Для типизированных DataTableтипов не сохраняются.For a typed DataTable, types are not preserved. Данные и схема передаются, но результирующие строки выходной таблицы не будут иметь типизированный DataRow тип.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. DataRow DataTableСвойства RowState и RowError не сохраняются во время копирования из источника в возвращаемый объект.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Если в источнике DataRowобнаружена пустая ссылка или тип Nullable со значением null , этот метод заменяет значение в назначении DataTable значением Value.When a null reference or nullable type with a value of null is found in a source DataRow, this method replaces the value in the destination DataTable with a value of Value.

Созданная таблица, возвращаемая методом, имеет имя таблицы по умолчанию.The generated table returned by the method has the default table name. Если вы хотите присвоить DataTableимя, присоединить его DataSetк или выполнить любую другую DataTable операцию, необходимо сделать это после того, как таблица будет создана и возвращена.If you want to name the DataTable, attach it to a DataSet, or perform any other DataTable specific operation, you must do so after the table is created and returned.

Дополнительные сведения см. в разделе Создание таблицы данных из запроса.For more information, see Creating a DataTable From a Query.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

public:
generic <typename T>
 where T : System::Data::DataRow[System::Runtime::CompilerServices::Extension]
 static void CopyToDataTable(System::Collections::Generic::IEnumerable<T> ^ source, System::Data::DataTable ^ table, System::Data::LoadOption options, System::Data::FillErrorEventHandler ^ errorHandler);
public static void CopyToDataTable<T> (this System.Collections.Generic.IEnumerable<T> source, System.Data.DataTable table, System.Data.LoadOption options, System.Data.FillErrorEventHandler errorHandler) where T : System.Data.DataRow;
static member CopyToDataTable : seq<'T (requires 'T :> System.Data.DataRow)> * System.Data.DataTable * System.Data.LoadOption * System.Data.FillErrorEventHandler -> unit (requires 'T :> System.Data.DataRow)
<Extension()>
Public Sub CopyToDataTable(Of T As DataRow) (source As IEnumerable(Of T), table As DataTable, options As LoadOption, errorHandler As FillErrorEventHandler)

Параметры типа

T

Тип объектов в исходной последовательности, обычно DataRow.The type of objects in the source sequence, typically DataRow.

Параметры

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Исходная последовательность IEnumerable<T>.The source IEnumerable<T> sequence.

table
DataTable DataTable DataTable DataTable

DataTable — объект назначения.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Перечисление LoadOption, указывающее параметры загрузки DataTable.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler

Делегат FillErrorEventHandler, представляющий метод, который будет обрабатывать ошибки.A FillErrorEventHandler delegate that represents the method that will handle an error.

Исключения

Копируемые объекты DataRow не соответствуют схеме объекта назначения DataTable.The copied DataRow objects do not fit the schema of the destination DataTable.

Исходная последовательность IEnumerable<T> имеет значение null либо конечный объект DataTable равен null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Объект DataRow в исходной последовательности находится в состоянии Deleted.A DataRow in the source sequence has a state of Deleted.

- или --or- Исходная последовательность не содержит объектов DataRow.The source sequence does not contain any DataRow objects.

-или--or- Объект DataRow в исходной последовательности имеет значение null.A DataRow in the source sequence is null.

Комментарии

Параметр T входного параметра source может иметь только тип DataRowили тип, производный от DataRow.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

Входной последовательностью может быть IEnumerable<T> любой источник, а не только запрос к DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Обратите внимание, что если исходная последовательность является запросом, вызов этого оператора приведет к немедленному выполнению.Note that if the source sequence is a query, calling this operator will force immediate execution. Перечисление исходных последовательностей может также привести к возникновению исключений.Enumerating the source sequence can also cause exceptions to be thrown.

Схема целевой таблицы основана на схеме первой DataRow строки исходной последовательности.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Метаданные таблицы извлекаются из DataRow метаданных и значений таблицы из значений DataRowстолбцов.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Для типизированных DataTableтипов не сохраняются.For a typed DataTable, types are not preserved. Данные и схема передаются, но результирующие строки выходной таблицы не будут иметь типизированный DataRow тип.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. DataRow DataTableСвойства RowState и RowError не сохраняются во время копирования из источника в возвращаемый объект.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Если в источнике DataRowобнаружена пустая ссылка или тип Nullable со значением null , этот метод заменяет значение в назначении DataTable значением Value.When a null reference or nullable type with a value of null is found in a source DataRow, this method replaces the value in the destination DataTable with a value of Value.

Созданная таблица, возвращаемая методом, имеет имя таблицы по умолчанию.The generated table returned by the method has the default table name. Если вы хотите присвоить DataTableимя, присоединить его DataSetк или выполнить любую другую DataTable операцию, необходимо сделать это после того, как таблица будет создана и возвращена.If you want to name the DataTable, attach it to a DataSet, or perform any other DataTable specific operation, you must do so after the table is created and returned.

Если исключение возникает во время копирования строки данных в целевую таблицу, например исключение ограничения, errorHandler вызывается делегат.If an exception is thrown during the copy of a data row into the target table, such as a constraint exception, the errorHandler delegate is called. Передается errorHandler в делегат со следующими значениями: FillErrorEventArgsA FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • Values Свойству присваивается копия исходных данных.The Values property is set to a copy of the source data.

  • Для свойства задан целевой объект DataTable. DataTableThe DataTable property is set to the target DataTable.

  • Для Errors свойства задается Перехваченное исключение.The Errors property is set to the caught exception.

Continue Свойство считывается после возврата вызова делегата.The Continue property is read after the delegate call returns. Если свойство имеет значение true, исходная последовательность по-своему будет перечисляться и загружаться в таблицу данных. ContinueIf the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Если свойство имеет falseзначение, исходное CopyToDataTable исключение создается из метода. ContinueIf the Continue property is false, the original exception is thrown from the CopyToDataTable method.

Дополнительные сведения см. в разделе Создание таблицы данных из запроса.For more information, see Creating a DataTable From a Query.

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