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


DataTableExtensions.CopyToDataTable Метод

Определение

Возвращает объект DataTable , содержащий копии DataRow объектов, заданный входным IEnumerable<T> объектом.

Перегрузки

Имя Описание
CopyToDataTable<T>(IEnumerable<T>)

Возвращает DataTable, содержащий копии объектов DataRow, учитывая входной объект IEnumerable<T>, в котором T универсальный параметр DataRow.

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

Копирует объекты DataRow в указанный DataTable, учитывая входной IEnumerable<T> объект, в котором T универсальный параметр DataRow.

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

Копирует объекты DataRow в указанный DataTable, учитывая входной IEnumerable<T> объект, в котором T универсальный параметр DataRow.

CopyToDataTable<T>(IEnumerable<T>)

Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs

Возвращает DataTable, содержащий копии объектов DataRow, учитывая входной объект IEnumerable<T>, в котором T универсальный параметр 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.

Параметры

source
IEnumerable<T>

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

Возвращаемое значение

Объект, DataTable содержащий входную последовательность в качестве типа DataRow объектов.

Исключения

Исходная IEnumerable<T> последовательность состоит в том null , что не удается создать новую таблицу.

В DataRow исходной последовательности имеется состояние Deleted.

Исходная последовательность не содержит DataRow объектов.

В DataRow исходной последовательности есть null.

Примеры

В следующем примере выполняется запрос таблицы SalesOrderHeader для заказов после 8 августа 2001 г. и используется CopyToDataTable метод для создания DataTable из этого запроса. Затем DataTable привязан к BindingSource, который служит прокси для 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

Комментарии

Параметр входного параметра Tsource может быть только типом или типом DataRow , производным от DataRow.

Входная последовательность может быть любым IEnumerable<T> источником, а не только запросом или запросом по объекту DataTable. Обратите внимание, что если исходная последовательность является запросом, вызов этого оператора приведет к немедленному выполнению. Перечисление исходной последовательности также может привести к возникновению исключений.

Схема целевой таблицы основана на схеме первой DataRow строки в исходной последовательности. Метаданные таблицы извлекаются из DataRow метаданных и значений таблицы из значений столбцов.DataRow Для типизированного DataTableтипа типы не сохраняются. Данные и схема передаются, но результируемые строки выходной таблицы не будут иметь типизированный DataRow тип. RowError Свойства RowState не сохраняются во время копирования из источника DataRow в возвращаемый DataTableобъект.

Если ссылка null или тип null со значением NULL найдена в источникеDataRow, этот метод заменяет значение в назначении DataTable значением.Value

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

Дополнительные сведения см. в статье "Создание dataTable из запроса".

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

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

Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs

Копирует объекты DataRow в указанный DataTable, учитывая входной IEnumerable<T> объект, в котором T универсальный параметр 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.

Параметры

source
IEnumerable<T>

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

table
DataTable

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

options
LoadOption

Перечисление LoadOption , указывающее DataTable параметры загрузки.

Исключения

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

Исходная IEnumerable<T> последовательность или null назначение DataTablenull.

В DataRow исходной последовательности имеется состояние Deleted.

Исходная последовательность не содержит DataRow объектов.

В DataRow исходной последовательности есть null.

Комментарии

Параметр T входного параметра source может быть только типом или типом DataRow, производным от DataRow.

Входная последовательность может быть любым IEnumerable<T> источником, а не только запросом по запросу DataTable. Обратите внимание, что если исходная последовательность является запросом, вызов этого оператора приведет к немедленному выполнению. Перечисление исходной последовательности также может привести к возникновению исключений.

Схема целевой таблицы основана на схеме первой DataRow строки в исходной последовательности. Метаданные таблицы извлекаются из DataRow метаданных и значений таблицы из значений столбцов.DataRow Для типизированного DataTableтипа типы не сохраняются. Данные и схема передаются, но результируемые строки выходной таблицы не будут иметь типизированный DataRow тип. RowError Свойства RowState не сохраняются во время копирования из источника DataRow в возвращаемый DataTableобъект.

Если ссылка null или тип null со значением NULL найдена в источникеDataRow, этот метод заменяет значение в назначении DataTable значением.Value

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

Дополнительные сведения см. в статье "Создание dataTable из запроса".

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

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

Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs
Исходный код:
DataTableExtensions.cs

Копирует объекты DataRow в указанный DataTable, учитывая входной IEnumerable<T> объект, в котором T универсальный параметр 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;
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.

Параметры

source
IEnumerable<T>

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

table
DataTable

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

options
LoadOption

Перечисление LoadOption , указывающее DataTable параметры загрузки.

errorHandler
FillErrorEventHandler

Делегат FillErrorEventHandler , представляющий метод, который будет обрабатывать ошибку.

Исключения

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

Исходная IEnumerable<T> последовательность или null назначение DataTablenull.

В DataRow исходной последовательности имеется состояние Deleted.

–или–

Исходная последовательность не содержит DataRow объектов.

–или–

В DataRow исходной последовательности есть null.

Комментарии

Параметр T входного параметра source может быть только типом или типом DataRow, производным от DataRow.

Входная последовательность может быть любым IEnumerable<T> источником, а не только запросом по запросу DataTable. Обратите внимание, что если исходная последовательность является запросом, вызов этого оператора приведет к немедленному выполнению. Перечисление исходной последовательности также может привести к возникновению исключений.

Схема целевой таблицы основана на схеме первой DataRow строки в исходной последовательности. Метаданные таблицы извлекаются из DataRow метаданных и значений таблицы из значений столбцов.DataRow Для типизированного DataTableтипа типы не сохраняются. Данные и схема передаются, но результируемые строки выходной таблицы не будут иметь типизированный DataRow тип. RowError Свойства RowState не сохраняются во время копирования из источника DataRow в возвращаемый DataTableобъект.

Если ссылка null или тип null со значением NULL найдена в источникеDataRow, этот метод заменяет значение в назначении DataTable значением.Value

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

Если исключение создается во время копирования строки данных в целевую таблицу, например исключение ограничения, errorHandler вызывается делегат. Передается FillErrorEventArgserrorHandler делегату со следующими значениями:

  • Для Values свойства задана копия исходных данных.

  • Для DataTable свойства задан целевой объект DataTable.

  • Для Errors свойства задано исключение, захваченное.

Свойство Continue считывается после возврата вызова делегата. Continue Если свойство равноtrue, исходная последовательность продолжает перечисляться и загружаться в таблицу данных. Если свойство имеет значениеfalse, исходное Continue исключение создается из CopyToDataTable метода.

Дополнительные сведения см. в статье "Создание dataTable из запроса".

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