DataTableExtensions.CopyToDataTable Metoda

Definice

Vrátí objekt DataTable , který obsahuje kopie DataRow objektů, zadaného vstupního IEnumerable<T> objektu.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object.

Přetížení

CopyToDataTable<T>(IEnumerable<T>)

Vrátí DataTable , který obsahuje kopie DataRow objektů, a to tak, že předané vstupní IEnumerable<T> objekt, kde je obecný parametr 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)

Zkopíruje DataRow objekty do zadaného s DataTable předaným vstupním IEnumerable<T> objektem, kde T je obecný parametr 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)

Zkopíruje DataRow objekty do zadaného s DataTable předaným vstupním IEnumerable<T> objektem, kde T je obecný parametr 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>)

Vrátí DataTable , který obsahuje kopie DataRow objektů, a to tak, že předané vstupní IEnumerable<T> objekt, kde je obecný parametr 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

Parametry typu

T

Typ objektů ve zdrojové sekvenci, obvykle DataRow .The type of objects in the source sequence, typically DataRow.

Parametry

source
IEnumerable<T>

Zdrojová IEnumerable<T> sekvence.The source IEnumerable<T> sequence.

Návraty

DataTable

DataTableKterý obsahuje vstupní sekvenci jako typ DataRow objektů.A DataTable that contains the input sequence as the type of DataRow objects.

Výjimky

Zdrojová IEnumerable<T> sekvence je null a nelze vytvořit novou tabulku.The source IEnumerable<T> sequence is null and a new table cannot be created.

DataRowVe zdrojové sekvenci má stav Deleted .A DataRow in the source sequence has a state of Deleted.

Zdrojová sekvence neobsahuje žádné DataRow objekty.The source sequence does not contain any DataRow objects.

DataRowVe zdrojové sekvenci je null .A DataRow in the source sequence is null.

Příklady

Následující příklad vyhledá tabulku SalesOrderHeader pro objednávky po 8. srpna 2001 a použije CopyToDataTable metodu k vytvoření DataTable z tohoto dotazu.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. DataTableJe pak svázán s BindingSource , který funguje jako proxy pro 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

Poznámky

Parametr T vstupního parametru source může být pouze typu DataRow nebo typu odvozeného od DataRow .The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

Vstupní sekvence může být libovolný IEnumerable<T> zdroj, nikoli jenom dotaz nebo dotaz přes DataTable .The input sequence can be any IEnumerable<T> source, not only a query or a query over a DataTable. Všimněte si, že pokud je zdrojem sekvence dotaz, volání tohoto operátoru vynutí okamžité provedení.Note that if the source sequence is a query, calling this operator will force immediate execution. Výčet zdrojové sekvence může také způsobit vyvolání výjimek.Enumerating the source sequence can also cause exceptions to be thrown.

Schéma cílové tabulky je založené na schématu prvního DataRow řádku ve zdrojové sekvenci.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Metadata tabulky se extrahují z DataRow metadat a hodnot tabulky z hodnot sloupce DataRow .The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. U zadaného DataTable typu nejsou zachovány typy.For a typed DataTable, types are not preserved. Data a schéma se přenesou, ale výsledné řádky výstupní tabulky nebudou typovaného DataRow typu.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. RowStateVlastnosti a RowError nejsou zachovány během kopírování ze zdroje DataRow do vrácené DataTable .The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Pokud je ve zdroji nalezen odkaz s hodnotou null nebo typ s možnou hodnotou null s hodnotou null DataRow , tato metoda nahradí hodnotu v cíli DataTable hodnotou 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.

Vygenerovaná tabulka vrácená metodou má výchozí název tabulky.The generated table returned by the method has the default table name. Pokud chcete název DataTable , připojit ho k DataSet nebo provést jakoukoli jinou DataTable konkrétní operaci, musíte to udělat po vytvoření a vrácení tabulky.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.

Další informace naleznete v tématu vytvoření objektu DataTable z dotazu.For more information, see Creating a DataTable From a Query.

Platí pro

Produkt Introduced

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

Zkopíruje DataRow objekty do zadaného s DataTable předaným vstupním IEnumerable<T> objektem, kde T je obecný parametr 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)

Parametry typu

T

Typ objektů ve zdrojové sekvenci, obvykle DataRow .The type of objects in the source sequence, typically DataRow.

Parametry

source
IEnumerable<T>

Zdrojová IEnumerable<T> sekvence.The source IEnumerable<T> sequence.

table
DataTable

Cíl DataTable .The destination DataTable.

options
LoadOption

LoadOptionVýčet, který určuje DataTable Možnosti načtení.A LoadOption enumeration that specifies the DataTable load options.

Výjimky

Zkopírované DataRow objekty se nevejdou do schématu cíle DataTable .The copied DataRow objects do not fit the schema of the destination DataTable.

Zdrojová IEnumerable<T> sekvence je null nebo cíl DataTable null .The source IEnumerable<T> sequence is null or the destination DataTable is null.

DataRowVe zdrojové sekvenci má stav Deleted .A DataRow in the source sequence has a state of Deleted.

Zdrojová sekvence neobsahuje žádné DataRow objekty.The source sequence does not contain any DataRow objects.

DataRowVe zdrojové sekvenci je null .A DataRow in the source sequence is null.

Poznámky

Parametr T vstupního parametru source může být pouze typu DataRow nebo typu odvozeného z DataRow .The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

Vstupní sekvence může být libovolný IEnumerable<T> zdroj, nikoli jenom dotaz přes DataTable .The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Všimněte si, že pokud je zdrojem sekvence dotaz, volání tohoto operátoru vynutí okamžité provedení.Note that if the source sequence is a query, calling this operator will force immediate execution. Výčet zdrojové sekvence může také způsobit vyvolání výjimek.Enumerating the source sequence can also cause exceptions to be thrown.

Schéma cílové tabulky je založené na schématu prvního DataRow řádku ve zdrojové sekvenci.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Metadata tabulky se extrahují z DataRow metadat a hodnot tabulky z hodnot sloupce DataRow .The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. U zadaného DataTable typu nejsou zachovány typy.For a typed DataTable, types are not preserved. Data a schéma se přenesou, ale výsledné řádky výstupní tabulky nebudou typovaného DataRow typu.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. RowStateVlastnosti a RowError nejsou zachovány během kopírování ze zdroje DataRow do vrácené DataTable .The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Pokud je ve zdroji nalezen odkaz s hodnotou null nebo typ s možnou hodnotou null s hodnotou null DataRow , tato metoda nahradí hodnotu v cíli DataTable hodnotou 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.

Vygenerovaná tabulka vrácená metodou má výchozí název tabulky.The generated table returned by the method has the default table name. Pokud chcete název DataTable , připojit ho k DataSet nebo provést jakoukoli jinou DataTable konkrétní operaci, musíte to udělat po vytvoření a vrácení tabulky.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.

Další informace naleznete v tématu vytvoření objektu DataTable z dotazu.For more information, see Creating a DataTable From a Query.

Platí pro

Produkt Introduced

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

Zkopíruje DataRow objekty do zadaného s DataTable předaným vstupním IEnumerable<T> objektem, kde T je obecný parametr 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;
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)

Parametry typu

T

Typ objektů ve zdrojové sekvenci, obvykle DataRow .The type of objects in the source sequence, typically DataRow.

Parametry

source
IEnumerable<T>

Zdrojová IEnumerable<T> sekvence.The source IEnumerable<T> sequence.

table
DataTable

Cíl DataTable .The destination DataTable.

options
LoadOption

LoadOptionVýčet, který určuje DataTable Možnosti načtení.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler

FillErrorEventHandlerDelegát, který představuje metodu, která zpracuje chybu.A FillErrorEventHandler delegate that represents the method that will handle an error.

Výjimky

Zkopírované DataRow objekty se nevejdou do schématu cíle DataTable .The copied DataRow objects do not fit the schema of the destination DataTable.

Zdrojová IEnumerable<T> sekvence je null nebo cíl DataTable null .The source IEnumerable<T> sequence is null or the destination DataTable is null.

DataRowVe zdrojové sekvenci má stav Deleted .A DataRow in the source sequence has a state of Deleted.

-nebo--or- Zdrojová sekvence neobsahuje žádné DataRow objekty.The source sequence does not contain any DataRow objects.

-nebo--or- DataRowVe zdrojové sekvenci je null .A DataRow in the source sequence is null.

Poznámky

Parametr T vstupního parametru source může být pouze typu DataRow nebo typu odvozeného z DataRow .The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

Vstupní sekvence může být libovolný IEnumerable<T> zdroj, nikoli jenom dotaz přes DataTable .The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Všimněte si, že pokud je zdrojem sekvence dotaz, volání tohoto operátoru vynutí okamžité provedení.Note that if the source sequence is a query, calling this operator will force immediate execution. Výčet zdrojové sekvence může také způsobit vyvolání výjimek.Enumerating the source sequence can also cause exceptions to be thrown.

Schéma cílové tabulky je založené na schématu prvního DataRow řádku ve zdrojové sekvenci.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Metadata tabulky se extrahují z DataRow metadat a hodnot tabulky z hodnot sloupce DataRow .The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. U zadaného DataTable typu nejsou zachovány typy.For a typed DataTable, types are not preserved. Data a schéma se přenesou, ale výsledné řádky výstupní tabulky nebudou typovaného DataRow typu.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. RowStateVlastnosti a RowError nejsou zachovány během kopírování ze zdroje DataRow do vrácené DataTable .The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Pokud je ve zdroji nalezen odkaz s hodnotou null nebo typ s možnou hodnotou null s hodnotou null DataRow , tato metoda nahradí hodnotu v cíli DataTable hodnotou 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.

Vygenerovaná tabulka vrácená metodou má výchozí název tabulky.The generated table returned by the method has the default table name. Pokud chcete název DataTable , připojit ho k DataSet nebo provést jakoukoli jinou DataTable konkrétní operaci, musíte to udělat po vytvoření a vrácení tabulky.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.

Pokud je vyvolána výjimka během kopírování řádku dat do cílové tabulky, jako je například výjimka omezení, errorHandler je volán delegát.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. A FillErrorEventArgs se předává errorHandler delegátovi s následujícími hodnotami:A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • ValuesVlastnost je nastavena na kopii zdrojových dat.The Values property is set to a copy of the source data.

  • DataTableVlastnost je nastavena na cíl DataTable .The DataTable property is set to the target DataTable.

  • ErrorsVlastnost je nastavena na Zachycenou výjimku.The Errors property is set to the caught exception.

ContinueVlastnost je přečtena po návratu volání delegáta.The Continue property is read after the delegate call returns. Pokud Continue je vlastnost true , zdrojová sekvence bude nadále vyhodnocena a načtena do tabulky dat.If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Pokud Continue je vlastnost false , původní výjimka je vyvolána z CopyToDataTable metody.If the Continue property is false, the original exception is thrown from the CopyToDataTable method.

Další informace naleznete v tématu vytvoření objektu DataTable z dotazu.For more information, see Creating a DataTable From a Query.

Platí pro

Produkt Introduced