Teilen über


DataTableExtensions.CopyToDataTable Methode

Definition

Gibt eine DataTable zurück, die Kopien der DataRow-Objekte enthält, wenn ein IEnumerable<T>-Eingabeobjekt vorhanden ist.

Überlädt

CopyToDataTable<T>(IEnumerable<T>)

Gibt eine DataTable zurück, die Kopien der DataRow-Objekte enthält, wenn ein IEnumerable<T>-Eingabeobjekt vorhanden ist, bei dem der generische Parameter T den Wert DataRow hat.

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

Kopiert DataRow-Objekte in die angegebene DataTable, bei einem IEnumerable<T>-Eingabeobjekt, bei dem der generische Parameter T den Wert DataRow aufweist.

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

Kopiert DataRow-Objekte in die angegebene DataTable, bei einem IEnumerable<T>-Eingabeobjekt, bei dem der generische Parameter T den Wert DataRow aufweist.

CopyToDataTable<T>(IEnumerable<T>)

Quelle:
DataTableExtensions.cs
Quelle:
DataTableExtensions.cs
Quelle:
DataTableExtensions.cs

Gibt eine DataTable zurück, die Kopien der DataRow-Objekte enthält, wenn ein IEnumerable<T>-Eingabeobjekt vorhanden ist, bei dem der generische Parameter T den Wert DataRow hat.

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

Typparameter

T

Der Typ der Objekte in der Quellsequenz, meist DataRow.

Parameter

source
IEnumerable<T>

Die IEnumerable<T>-Quellsequenz.

Gibt zurück

Eine DataTable, die die Eingabesequenz als den Typ von DataRow-Objekten enthält.

Ausnahmen

Die IEnumerable<T>-Quellsequenz ist null, und es kann keine neue Tabelle erstellt werden.

Eine DataRow in der Quellsequenz hat einen Zustand von Deleted.

Die Quellsequenz enthält keine DataRow-Objekte.

Eine DataRow in der Quellsequenz ist null.

Beispiele

Im folgenden Beispiel wird die SalesOrderHeader-Tabelle nach Bestellungen nach dem 8. August 2001 abfragt, und es wird die CopyToDataTable -Methode verwendet, um eine DataTable aus dieser Abfrage zu erstellen. Die DataTable wird dann an eine BindingSource gebunden, die als Proxy für eine DataGridView fungiert.

// 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

Hinweise

Der Parameter T des Eingabeparameters source kann nur vom Typ DataRow oder einem von DataRowabgeleiteten Typ sein.

Die Eingabesequenz kann eine beliebige IEnumerable<T> Quelle sein, nicht nur eine Abfrage oder eine Abfrage über eine DataTable. Wenn es sich bei der Quellsequenz um eine Abfrage handelt, erzwingt der Aufruf dieses Operators die sofortige Ausführung. Das Aufzählen der Quellsequenz kann auch dazu führen, dass Ausnahmen ausgelöst werden.

Das Schema der Zieltabelle basiert auf dem Schema der ersten DataRow Zeile in der Quellsequenz. Die Tabellenmetadaten werden aus den DataRow Metadaten und die Tabellenwerte aus den Spaltenwerten des DataRowextrahiert. Für ein typisiertes DataTablewerden Typen nicht beibehalten. Die Daten und das Schema werden übertragen, aber die resultierenden Zeilen der Ausgabetabelle sind nicht vom typisierten DataRow Typ. Die RowState Eigenschaften und RowError werden während des Kopierens von der Quelle DataRow in den zurückgegebenen DataTablenicht beibehalten.

Wenn ein NULL-Verweis oder nullable-Typ mit dem Wert NULL in einer Quelle DataRowgefunden wird, ersetzt diese Methode den Wert im Ziel DataTable durch den Wert .Value

Die von der -Methode zurückgegebene generierte Tabelle weist den Standardtabellennamen auf. Wenn Sie den DataTablebenennen, an einen anfügen oder einen DataSetanderen DataTable spezifischen Vorgang ausführen möchten, müssen Sie dies tun, nachdem die Tabelle erstellt und zurückgegeben wurde.

Weitere Informationen finden Sie unter Erstellen einer DataTable aus einer Abfrage.

Gilt für:

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

Quelle:
DataTableExtensions.cs
Quelle:
DataTableExtensions.cs
Quelle:
DataTableExtensions.cs

Kopiert DataRow-Objekte in die angegebene DataTable, bei einem IEnumerable<T>-Eingabeobjekt, bei dem der generische Parameter T den Wert DataRow aufweist.

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)

Typparameter

T

Der Typ der Objekte in der Quellsequenz, meist DataRow.

Parameter

source
IEnumerable<T>

Die IEnumerable<T>-Quellsequenz.

table
DataTable

Das Ziel-DataTable.

options
LoadOption

Eine LoadOption-Enumeration, die die DataTable-Ladeoptionen angibt.

Ausnahmen

Die kopierten DataRow-Objekte stimmen nicht mit dem Schema der Ziel-DataTable überein.

Die IEnumerable<T>-Quellsequenz ist null, oder die Ziel-DataTable ist null.

Eine DataRow in der Quellsequenz hat einen Zustand von Deleted.

Die Quellsequenz enthält keine DataRow-Objekte.

Eine DataRow in der Quellsequenz ist null.

Hinweise

Der Parameter T des Eingabeparameters source kann nur vom Typ DataRowoder einem von DataRowabgeleiteten Typ sein.

Die Eingabesequenz kann eine beliebige IEnumerable<T> Quelle sein, nicht nur eine Abfrage über eine DataTable. Wenn es sich bei der Quellsequenz um eine Abfrage handelt, erzwingt der Aufruf dieses Operators die sofortige Ausführung. Das Aufzählen der Quellsequenz kann auch dazu führen, dass Ausnahmen ausgelöst werden.

Das Schema der Zieltabelle basiert auf dem Schema der ersten DataRow Zeile in der Quellsequenz. Die Tabellenmetadaten werden aus den DataRow Metadaten und die Tabellenwerte aus den Spaltenwerten des DataRowextrahiert. Für ein typisiertes DataTablewerden Typen nicht beibehalten. Die Daten und das Schema werden übertragen, aber die resultierenden Zeilen der Ausgabetabelle sind nicht vom typisierten DataRow Typ. Die RowState Eigenschaften und RowError werden während des Kopierens von der Quelle DataRow in den zurückgegebenen DataTablenicht beibehalten.

Wenn ein NULL-Verweis oder nullable-Typ mit dem Wert NULL in einer Quelle DataRowgefunden wird, ersetzt diese Methode den Wert im Ziel DataTable durch den Wert .Value

Die von der -Methode zurückgegebene generierte Tabelle weist den Standardtabellennamen auf. Wenn Sie den DataTablebenennen, an einen anfügen oder einen DataSetanderen DataTable spezifischen Vorgang ausführen möchten, müssen Sie dies tun, nachdem die Tabelle erstellt und zurückgegeben wurde.

Weitere Informationen finden Sie unter Erstellen einer DataTable aus einer Abfrage.

Gilt für:

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

Quelle:
DataTableExtensions.cs
Quelle:
DataTableExtensions.cs
Quelle:
DataTableExtensions.cs

Kopiert DataRow-Objekte in die angegebene DataTable, bei einem IEnumerable<T>-Eingabeobjekt, bei dem der generische Parameter T den Wert DataRow aufweist.

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)

Typparameter

T

Der Typ der Objekte in der Quellsequenz, meist DataRow.

Parameter

source
IEnumerable<T>

Die IEnumerable<T>-Quellsequenz.

table
DataTable

Das Ziel-DataTable.

options
LoadOption

Eine LoadOption-Enumeration, die die DataTable-Ladeoptionen angibt.

errorHandler
FillErrorEventHandler

Ein FillErrorEventHandler-Delegat, der die Methode darstellt, die einen Fehler behandelt.

Ausnahmen

Die kopierten DataRow-Objekte stimmen nicht mit dem Schema der Ziel-DataTable überein.

Die IEnumerable<T>-Quellsequenz ist null, oder die Ziel-DataTable ist null.

Eine DataRow in der Quellsequenz hat einen Zustand von Deleted.

- oder -

Die Quellsequenz enthält keine DataRow-Objekte.

- oder -

Eine DataRow in der Quellsequenz ist null.

Hinweise

Der Parameter T des Eingabeparameters source kann nur vom Typ DataRowoder einem von DataRowabgeleiteten Typ sein.

Die Eingabesequenz kann eine beliebige IEnumerable<T> Quelle sein, nicht nur eine Abfrage über eine DataTable. Wenn es sich bei der Quellsequenz um eine Abfrage handelt, erzwingt der Aufruf dieses Operators die sofortige Ausführung. Das Aufzählen der Quellsequenz kann auch dazu führen, dass Ausnahmen ausgelöst werden.

Das Schema der Zieltabelle basiert auf dem Schema der ersten DataRow Zeile in der Quellsequenz. Die Tabellenmetadaten werden aus den DataRow Metadaten und die Tabellenwerte aus den Spaltenwerten des DataRowextrahiert. Für ein typisiertes DataTablewerden Typen nicht beibehalten. Die Daten und das Schema werden übertragen, aber die resultierenden Zeilen der Ausgabetabelle sind nicht vom typisierten DataRow Typ. Die RowState Eigenschaften und RowError werden während des Kopierens von der Quelle DataRow in den zurückgegebenen DataTablenicht beibehalten.

Wenn ein NULL-Verweis oder nullable-Typ mit dem Wert NULL in einer Quelle DataRowgefunden wird, ersetzt diese Methode den Wert im Ziel DataTable durch den Wert .Value

Die von der -Methode zurückgegebene generierte Tabelle weist den Standardtabellennamen auf. Wenn Sie den DataTablebenennen, an einen anfügen oder einen DataSetanderen DataTable spezifischen Vorgang ausführen möchten, müssen Sie dies tun, nachdem die Tabelle erstellt und zurückgegeben wurde.

Wenn beim Kopieren einer Datenzeile in die Zieltabelle eine Ausnahme ausgelöst wird, z. B. eine Einschränkungsregel, wird der errorHandler Delegat aufgerufen. Ein FillErrorEventArgs wird mit den folgenden Werten an den errorHandler Delegaten übergeben:

  • Die Values -Eigenschaft wird auf eine Kopie der Quelldaten festgelegt.

  • Die DataTable -Eigenschaft wird auf das Ziel DataTablefestgelegt.

  • Die Errors -Eigenschaft wird auf die abgefangene Ausnahme festgelegt.

Die Continue -Eigenschaft wird gelesen, nachdem der Delegataufruf zurückgegeben wurde. Wenn die Continue -Eigenschaft ist true, wird die Quellsequenz weiterhin aufgezählt und in die Datentabelle geladen. Wenn die Continue -Eigenschaft ist false, wird die ursprüngliche Ausnahme von der CopyToDataTable -Methode ausgelöst.

Weitere Informationen finden Sie unter Erstellen einer DataTable aus einer Abfrage.

Gilt für: