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. RowState И RowError свойства, не сохраняются во время копирования из источника DataRow к возвращенному DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Когда null ссылку или тип, допускающий значение NULL со значением null найден в источнике DataRow, этот метод заменяет значение в целевой 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.

Дополнительные сведения см. в разделе Создание DataTable из запроса.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. RowState И RowError свойства, не сохраняются во время копирования из источника DataRow к возвращенному DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Когда null ссылку или тип, допускающий значение NULL со значением null найден в источнике DataRow, этот метод заменяет значение в целевой 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.

Дополнительные сведения см. в разделе Создание DataTable из запроса.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. RowState И RowError свойства, не сохраняются во время копирования из источника DataRow к возвращенному DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Когда null ссылку или тип, допускающий значение NULL со значением null найден в источнике DataRow, этот метод заменяет значение в целевой 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. Объект FillErrorEventArgs передается errorHandler делегировать со следующими значениями:A 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 Свойству целевого DataTable.The 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. Если Continue свойство true, перечисления и загружать в таблицу данных по-прежнему исходной последовательности.If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Если Continue свойство false, исходное исключение вызывается исключение CopyToDataTable метод.If the Continue property is false, the original exception is thrown from the CopyToDataTable method.

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

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