Sdílet prostřednictvím


DataTableExtensions.CopyToDataTable Metoda

Definice

Vrátí hodnotu , DataTable která obsahuje kopie DataRow objektů vzhledem ke vstupnímu IEnumerable<T> objektu.

Přetížení

CopyToDataTable<T>(IEnumerable<T>)

Vrátí hodnotu , DataTable která obsahuje kopie DataRow objektů vzhledem ke vstupnímu IEnumerable<T> objektu, kde je DataRowobecný parametr T .

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

Zkopíruje DataRow objekty do zadaného DataTableobjektu , který je vstupním objektemIEnumerable<T>, kde je DataRowobecný parametr T .

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

Zkopíruje DataRow objekty do zadaného DataTableobjektu , který je vstupním objektemIEnumerable<T>, kde je DataRowobecný parametr T .

CopyToDataTable<T>(IEnumerable<T>)

Zdroj:
DataTableExtensions.cs
Zdroj:
DataTableExtensions.cs
Zdroj:
DataTableExtensions.cs

Vrátí hodnotu , DataTable která obsahuje kopie DataRow objektů vzhledem ke vstupnímu IEnumerable<T> objektu, kde je DataRowobecný parametr T .

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.

Parametry

source
IEnumerable<T>

Zdrojová IEnumerable<T> sekvence.

Návraty

A DataTable , který obsahuje vstupní sekvenci jako typ DataRow objektů.

Výjimky

Zdrojová IEnumerable<T> sekvence je null a novou tabulku nelze vytvořit.

Ve DataRow zdrojové sekvenci má stav Deleted.

Zdrojová sekvence neobsahuje žádné DataRow objekty.

Ve DataRow zdrojové sekvenci je null.

Příklady

Následující příklad se dotazuje tabulky SalesOrderHeader na objednávky po 8. srpnu 2001 a použije metodu CopyToDataTable k vytvoření DataTable z tohoto dotazu. Pak DataTable je vázán na BindingSource, který funguje jako proxy pro 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 odvozeného z DataRow.

Vstupní sekvence může být libovolný IEnumerable<T> zdroj, nejen dotaz nebo dotaz nad DataTable. Všimněte si, že pokud je zdrojová sekvence dotazem, volání tohoto operátoru vynutí okamžité spuštění. Vytvoření výčtu zdrojové sekvence může také způsobit vyvolání výjimek.

Schéma cílové tabulky je založené na schématu prvního DataRow řádku ve zdrojové sekvenci. Metadata tabulky se extrahují z DataRow metadat a hodnoty tabulky z hodnot DataRowsloupců . Typové DataTabletypy se nezachovají. Data a schéma se přenesou, ale výsledné řádky výstupní tabulky nebudou typovaného DataRow typu. Vlastnosti RowState a RowError se nezachovají během kopírování ze zdroje DataRow do vráceného DataTableobjektu .

Pokud se ve zdroji DataRownajde odkaz s hodnotou null nebo typ s možnou hodnotou null , tato metoda nahradí hodnotu v cíli DataTable hodnotou Value.

Vygenerovaná tabulka vrácená metodou má výchozí název tabulky. Pokud chcete pojmenovat , připojit ho DataTablek objektu nebo provést jakoukoli jinou DataTableDataSetkonkrétní operaci, musíte to udělat po vytvoření a vrácení tabulky.

Další informace najdete v tématu Vytvoření datové tabulky z dotazu.

Platí pro

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

Zdroj:
DataTableExtensions.cs
Zdroj:
DataTableExtensions.cs
Zdroj:
DataTableExtensions.cs

Zkopíruje DataRow objekty do zadaného DataTableobjektu , který je vstupním objektemIEnumerable<T>, kde je DataRowobecný parametr T .

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.

Parametry

source
IEnumerable<T>

Zdrojová IEnumerable<T> sekvence.

table
DataTable

Cíl DataTable.

options
LoadOption

Výčet LoadOption , který určuje DataTable možnosti načtení.

Výjimky

Zkopírované DataRow objekty neodpovídají schématu cílového DataTableobjektu .

Zdrojová IEnumerable<T> sekvence je null nebo cíl DataTable je null.

Ve DataRow zdrojové sekvenci má stav Deleted.

Zdrojová sekvence neobsahuje žádné DataRow objekty.

Ve DataRow zdrojové sekvenci je null.

Poznámky

Parametr T vstupního parametru source může být pouze typu DataRownebo typu odvozeného z DataRow.

Vstupní sekvence může být libovolný IEnumerable<T> zdroj, nejen dotaz na DataTable. Všimněte si, že pokud je zdrojová sekvence dotazem, volání tohoto operátoru vynutí okamžité spuštění. Vytvoření výčtu zdrojové sekvence může také způsobit vyvolání výjimek.

Schéma cílové tabulky je založené na schématu prvního DataRow řádku ve zdrojové sekvenci. Metadata tabulky se extrahují z DataRow metadat a hodnoty tabulky z hodnot DataRowsloupců . Typové DataTabletypy se nezachovají. Data a schéma se přenesou, ale výsledné řádky výstupní tabulky nebudou typovaného DataRow typu. Vlastnosti RowState a RowError se nezachovají během kopírování ze zdroje DataRow do vráceného DataTableobjektu .

Pokud se ve zdroji DataRownajde odkaz s hodnotou null nebo typ s možnou hodnotou null , tato metoda nahradí hodnotu v cíli DataTable hodnotou Value.

Vygenerovaná tabulka vrácená metodou má výchozí název tabulky. Pokud chcete pojmenovat , připojit ho DataTablek objektu nebo provést jakoukoli jinou DataTableDataSetkonkrétní operaci, musíte to udělat po vytvoření a vrácení tabulky.

Další informace najdete v tématu Vytvoření datové tabulky z dotazu.

Platí pro

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

Zdroj:
DataTableExtensions.cs
Zdroj:
DataTableExtensions.cs
Zdroj:
DataTableExtensions.cs

Zkopíruje DataRow objekty do zadaného DataTableobjektu , který je vstupním objektemIEnumerable<T>, kde je DataRowobecný parametr T .

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.

Parametry

source
IEnumerable<T>

Zdrojová IEnumerable<T> sekvence.

table
DataTable

Cíl DataTable.

options
LoadOption

Výčet LoadOption , který určuje DataTable možnosti načtení.

errorHandler
FillErrorEventHandler

Delegát FillErrorEventHandler , který představuje metodu, která bude zpracovávat chybu.

Výjimky

Zkopírované DataRow objekty neodpovídají schématu cílového DataTableobjektu .

Zdrojová IEnumerable<T> sekvence je null nebo cíl DataTable je null.

Ve DataRow zdrojové sekvenci má stav Deleted.

-nebo-

Zdrojová sekvence neobsahuje žádné DataRow objekty.

-nebo-

Ve DataRow zdrojové sekvenci je null.

Poznámky

Parametr T vstupního parametru source může být pouze typu DataRownebo typu odvozeného z DataRow.

Vstupní sekvence může být libovolný IEnumerable<T> zdroj, nejen dotaz na DataTable. Všimněte si, že pokud je zdrojová sekvence dotazem, volání tohoto operátoru vynutí okamžité spuštění. Vytvoření výčtu zdrojové sekvence může také způsobit vyvolání výjimek.

Schéma cílové tabulky je založené na schématu prvního DataRow řádku ve zdrojové sekvenci. Metadata tabulky se extrahují z DataRow metadat a hodnoty tabulky z hodnot DataRowsloupců . Typové DataTabletypy se nezachovají. Data a schéma se přenesou, ale výsledné řádky výstupní tabulky nebudou typovaného DataRow typu. Vlastnosti RowState a RowError se nezachovají během kopírování ze zdroje DataRow do vráceného DataTableobjektu .

Pokud se ve zdroji DataRownajde odkaz s hodnotou null nebo typ s možnou hodnotou null , tato metoda nahradí hodnotu v cíli DataTable hodnotou Value.

Vygenerovaná tabulka vrácená metodou má výchozí název tabulky. Pokud chcete pojmenovat , připojit ho DataTablek objektu nebo provést jakoukoli jinou DataTableDataSetkonkrétní operaci, musíte to udělat po vytvoření a vrácení tabulky.

Pokud je vyvolána výjimka během kopírování řádku dat do cílové tabulky, například výjimka omezení, errorHandler delegát je volán. Delegátu FillErrorEventArgserrorHandler se předá s následujícími hodnotami:

  • Vlastnost Values je nastavena na kopii zdrojových dat.

  • Vlastnost DataTable je nastavena na cíl DataTable.

  • Vlastnost Errors je nastavena na zachycenou výjimku.

Vlastnost se Continue přečte po vrácení volání delegáta. Continue Pokud je truevlastnost , zdrojová sekvence se bude dál číslovat a načítat do tabulky dat. Continue Pokud je falsevlastnost , původní výjimka je vyvolán z CopyToDataTable metody .

Další informace najdete v tématu Vytvoření datové tabulky z dotazu.

Platí pro