DataTableExtensions.CopyToDataTable Метод

Определение

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

Перегрузки

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)

Копирует объекты 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)

Копирует объекты 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, содержащий копии объектов 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>.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.

Если в источнике 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)

Копирует объекты 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>.The source IEnumerable<T> sequence.

table
DataTable

Назначение DataTable.The destination DataTable.

options
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.

Если в источнике 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)

Копирует объекты 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>.The source IEnumerable<T> sequence.

table
DataTable

Назначение DataTable.The destination DataTable.

options
LoadOption

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

errorHandler
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.

Если в источнике 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. @No__t-0 передается в делегат 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.

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

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