DataTableExtensions.CopyToDataTable Método

Definição

Devolve a DataTable que contém cópias dos DataRow objetos, dado um objeto de entrada IEnumerable<T> .

Sobrecargas

Name Description
CopyToDataTable<T>(IEnumerable<T>)

Devolve a DataTable que contém cópias dos DataRow objetos, dado um objeto de entrada IEnumerable<T> onde o parâmetro T genérico é DataRow.

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

Copia DataRow objetos para o especificado DataTable, dado um objeto de entrada IEnumerable<T> onde o parâmetro T genérico é DataRow.

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

Copia DataRow objetos para o especificado DataTable, dado um objeto de entrada IEnumerable<T> onde o parâmetro T genérico é DataRow.

CopyToDataTable<T>(IEnumerable<T>)

Devolve a DataTable que contém cópias dos DataRow objetos, dado um objeto de entrada IEnumerable<T> onde o parâmetro T genérico é 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

Parâmetros de Tipo Genérico

T

O tipo de objetos na sequência de origem, tipicamente DataRow.

Parâmetros

source
IEnumerable<T>

A sequência de origem IEnumerable<T> .

Devoluções

A DataTable que contém a sequência de entrada como tipo de DataRow objetos.

Exceções

A sequência de origem IEnumerable<T> é null e não pode ser criada uma nova tabela.

A DataRow na sequência de origem tem um estado de Deleted.

A sequência de origem não contém quaisquer DataRow objetos.

A DataRow na sequência de origem é null.

Exemplos

O exemplo seguinte consulta a tabela SalesOrderHeader para encomendas após 8 de agosto de 2001 e utiliza o CopyToDataTable método para criar um DataTable a partir dessa consulta. O DataTable é então vinculado a um BindingSource, que atua como proxy para um 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

Observações

O parâmetro T do parâmetro source de entrada só pode ser do tipo DataRow ou um tipo derivado de DataRow.

A sequência de entrada pode ser qualquer IEnumerable<T> fonte, não apenas uma consulta ou uma consulta sobre um DataTable. Note que, se a sequência de origem for uma consulta, chamar este operador forçará a execução imediata. Enumerar a sequência de origem também pode causar exceções.

O esquema da tabela de destino baseia-se no esquema da primeira DataRow linha da sequência de origem. Os metadados da tabela são extraídos dos DataRow metadados e os valores da tabela dos valores das colunas do DataRow. Para um tipo DataTable, os tipos não são preservados. Os dados e o esquema são transferidos, mas as linhas resultantes da tabela de saída não serão do tipo tipado DataRow . As RowState propriedades e RowError não são preservadas durante a cópia da fonte DataRow para a devolvida DataTable.

Quando uma referência nula ou tipo nulo com valor nulo é encontrado numa fonte DataRow, este método substitui o valor no destino DataTable por um valor de Value.

A tabela gerada devolvida pelo método tem o nome padrão da tabela. Se quiser nomear o DataTable, anexá-lo a um DataSet, ou realizar qualquer outra DataTable operação específica, deve fazê-lo depois de a tabela ser criada e devolvida.

Para mais informações, consulte Criar uma DataTable a partir de uma consulta.

Aplica-se a

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

Copia DataRow objetos para o especificado DataTable, dado um objeto de entrada IEnumerable<T> onde o parâmetro T genérico é 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)

Parâmetros de Tipo Genérico

T

O tipo de objetos na sequência de origem, tipicamente DataRow.

Parâmetros

source
IEnumerable<T>

A sequência de origem IEnumerable<T> .

table
DataTable

O destino DataTable.

options
LoadOption

Uma enumeração que especifica as DataTable opções de LoadOption carga.

Exceções

Os objetos copiados DataRow não se encaixam no esquema do destino DataTable.

A sequência de origem IEnumerable<T> é null ou o destino DataTable é null.

A DataRow na sequência de origem tem um estado de Deleted.

A sequência de origem não contém quaisquer DataRow objetos.

A DataRow na sequência de origem é null.

Observações

O parâmetro T do parâmetro source de entrada só pode ser do tipo DataRow, ou um tipo derivado de DataRow.

A sequência de entrada pode ser qualquer IEnumerable<T> fonte, não apenas uma consulta sobre um DataTable. Note que, se a sequência de origem for uma consulta, chamar este operador forçará a execução imediata. Enumerar a sequência de origem também pode causar exceções.

O esquema da tabela de destino baseia-se no esquema da primeira DataRow linha da sequência de origem. Os metadados da tabela são extraídos dos DataRow metadados e os valores da tabela dos valores das colunas do DataRow. Para um tipo DataTable, os tipos não são preservados. Os dados e o esquema são transferidos, mas as linhas resultantes da tabela de saída não serão do tipo tipado DataRow . As RowState propriedades e RowError não são preservadas durante a cópia da fonte DataRow para a devolvida DataTable.

Quando uma referência nula ou tipo nulo com valor nulo é encontrado numa fonte DataRow, este método substitui o valor no destino DataTable por um valor de Value.

A tabela gerada devolvida pelo método tem o nome padrão da tabela. Se quiser nomear o DataTable, anexá-lo a um DataSet, ou realizar qualquer outra DataTable operação específica, deve fazê-lo depois de a tabela ser criada e devolvida.

Para mais informações, consulte Criar uma DataTable a partir de uma consulta.

Aplica-se a

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

Copia DataRow objetos para o especificado DataTable, dado um objeto de entrada IEnumerable<T> onde o parâmetro T genérico é 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)

Parâmetros de Tipo Genérico

T

O tipo de objetos na sequência de origem, tipicamente DataRow.

Parâmetros

source
IEnumerable<T>

A sequência de origem IEnumerable<T> .

table
DataTable

O destino DataTable.

options
LoadOption

Uma enumeração que especifica as DataTable opções de LoadOption carga.

errorHandler
FillErrorEventHandler

Um FillErrorEventHandler delegado que representa o método que irá lidar com um erro.

Exceções

Os objetos copiados DataRow não se encaixam no esquema do destino DataTable.

A sequência de origem IEnumerable<T> é null ou o destino DataTable é null.

A DataRow na sequência de origem tem um estado de Deleted.

-ou-

A sequência de origem não contém quaisquer DataRow objetos.

-ou-

A DataRow na sequência de origem é null.

Observações

O parâmetro T do parâmetro source de entrada só pode ser do tipo DataRow, ou um tipo derivado de DataRow.

A sequência de entrada pode ser qualquer IEnumerable<T> fonte, não apenas uma consulta sobre um DataTable. Note que, se a sequência de origem for uma consulta, chamar este operador forçará a execução imediata. Enumerar a sequência de origem também pode causar exceções.

O esquema da tabela de destino baseia-se no esquema da primeira DataRow linha da sequência de origem. Os metadados da tabela são extraídos dos DataRow metadados e os valores da tabela dos valores das colunas do DataRow. Para um tipo DataTable, os tipos não são preservados. Os dados e o esquema são transferidos, mas as linhas resultantes da tabela de saída não serão do tipo tipado DataRow . As RowState propriedades e RowError não são preservadas durante a cópia da fonte DataRow para a devolvida DataTable.

Quando uma referência nula ou tipo nulo com valor nulo é encontrado numa fonte DataRow, este método substitui o valor no destino DataTable por um valor de Value.

A tabela gerada devolvida pelo método tem o nome padrão da tabela. Se quiser nomear o DataTable, anexá-lo a um DataSet, ou realizar qualquer outra DataTable operação específica, deve fazê-lo depois de a tabela ser criada e devolvida.

Se uma exceção for lançada durante a cópia de uma linha de dados para a tabela de destino, como uma exceção de restrição, o errorHandler delegado é chamado. A FillErrorEventArgs é passado ao errorHandler delegado com os seguintes valores:

  • A Values propriedade é definida como uma cópia dos dados de origem.

  • A DataTable propriedade é definida para o alvo DataTable.

  • A Errors propriedade está definida para a exceção apanhada.

A Continue propriedade é lida após o retorno da chamada do delegado. Se a Continue propriedade for true, a sequência de origem continua a ser enumerada e carregada na tabela de dados. Se a Continue propriedade for false, a exceção original é lançada do CopyToDataTable método.

Para mais informações, consulte Criar uma DataTable a partir de uma consulta.

Aplica-se a