Sdílet prostřednictvím


DataTableExtensions.CopyToDataTable Metoda

Definice

DataTable Vrátí hodnotu, která obsahuje kopie DataRow objektů zadanou vstupním IEnumerable<T> objektem.

Přetížení

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

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

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

Zkopíruje DataRow objekty do zadaného DataTablevzhledem k vstupnímu objektu IEnumerable<T>, kde je Tobecný parametr DataRow .

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

Zkopíruje DataRow objekty do zadaného DataTablevzhledem k vstupnímu objektu IEnumerable<T>, kde je Tobecný parametr DataRow .

CopyToDataTable<T>(IEnumerable<T>)

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

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

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>

IEnumerable<T> Zdrojová sekvence.

Návraty

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

Výjimky

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

A DataRow ve zdrojové sekvenci má stav Deleted.

Zdrojová sekvence neobsahuje žádné DataRow objekty.

A DataRow ve zdrojové sekvenci je null.

Příklady

Následující příklad dotazuje tabulku SalesOrderHeader pro objednávky po 8. srpnu 2001 a používá metodu CopyToDataTableDataTable k vytvoření 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 vstupního parametru Tsource může být pouze typu DataRow nebo typu odvozeného z DataRow.

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

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

Pokud je ve zdroji DataRownalezen nulový odkaz nebo nullable typ s 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 DataTable, připojit ho k nebo provést jakoukoli jinou DataSetDataTable konkrétní operaci, musíte to udělat po vytvoření a vrácení tabulky.

Další informace naleznete 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
Zdroj:
DataTableExtensions.cs
Zdroj:
DataTableExtensions.cs

Zkopíruje DataRow objekty do zadaného DataTablevzhledem k vstupnímu objektu IEnumerable<T>, kde je Tobecný parametr 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.

Parametry

source
IEnumerable<T>

IEnumerable<T> Zdrojová 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íle DataTable.

Zdrojová IEnumerable<T> sekvence je null nebo je cílem DataTablenull.

A DataRow ve zdrojové sekvenci má stav Deleted.

Zdrojová sekvence neobsahuje žádné DataRow objekty.

A DataRow ve zdrojové sekvenci je null.

Poznámky

Parametr vstupního parametru Tsource může být pouze typu DataRow, nebo typ odvozený z DataRow.

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

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

Pokud je ve zdroji DataRownalezen nulový odkaz nebo nullable typ s 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 DataTable, připojit ho k nebo provést jakoukoli jinou DataSetDataTable konkrétní operaci, musíte to udělat po vytvoření a vrácení tabulky.

Další informace naleznete 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
Zdroj:
DataTableExtensions.cs
Zdroj:
DataTableExtensions.cs

Zkopíruje DataRow objekty do zadaného DataTablevzhledem k vstupnímu objektu IEnumerable<T>, kde je Tobecný parametr 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.

Parametry

source
IEnumerable<T>

IEnumerable<T> Zdrojová 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á zpracuje chybu.

Výjimky

Zkopírované DataRow objekty neodpovídají schématu cíle DataTable.

Zdrojová IEnumerable<T> sekvence je null nebo je cílem DataTablenull.

A DataRow ve zdrojové sekvenci má stav Deleted.

nebo

Zdrojová sekvence neobsahuje žádné DataRow objekty.

nebo

A DataRow ve zdrojové sekvenci je null.

Poznámky

Parametr vstupního parametru Tsource může být pouze typu DataRow, nebo typ odvozený z DataRow.

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

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

Pokud je ve zdroji DataRownalezen nulový odkaz nebo nullable typ s 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 DataTable, připojit ho k nebo provést jakoukoli jinou DataSetDataTable konkrétní operaci, musíte to udělat po vytvoření a vrácení tabulky.

Pokud je při kopírování řádku dat do cílové tabulky vyvolána výjimka, například výjimka omezení, errorHandler delegát je volán. Delegátu errorHandler se předá A FillErrorEventArgs 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 Continue se přečte po vrácení volání delegáta. Continue Pokud je truetato vlastnost , zdrojová sekvence bude i nadále výčet a načtena do tabulky dat. Continue Pokud je falsevlastnost , původní výjimka je vyvolán z CopyToDataTable metody.

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

Platí pro