DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable Method

Definition

Gibt eine DataTable zurück, die Kopien der DataRow-Objekte enthält, wenn ein IEnumerable<T>-Eingabeobjekt vorhanden ist.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object.

Überlädt

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) 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.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) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) 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.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) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) 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.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) 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.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

Typparameter

T

Der Typ der Objekte in der Quellsequenz, meist DataRow.The type of objects in the source sequence, typically DataRow.

Parameter

Gibt zurück

Eine DataTable, die die Eingabesequenz als den Typ von DataRow-Objekten enthält.A DataTable that contains the input sequence as the type of DataRow objects.

Ausnahmen

Die IEnumerable<T>-Quellsequenz ist null, und es kann keine neue Tabelle erstellt werden.The source IEnumerable<T> sequence is null and a new table cannot be created.

Eine DataRow in der Quellsequenz hat einen Zustand von Deleted.A DataRow in the source sequence has a state of Deleted.

Die Quellsequenz enthält keine DataRow-Objekte.The source sequence does not contain any DataRow objects.

Eine DataRow in der Quellsequenz ist null.A DataRow in the source sequence is null.

Beispiele

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

Hinweise

Der Parameter "T" des Eingabe Parameters "source" darf nur den Typ "DataRow" oder einen von "DataRow" abgeleiteten Typ aufweisen.The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

Die Eingabe Sequenz kann eine beliebige IEnumerable<T>-Quelle sein, nicht nur eine Abfrage oder eine Abfrage über eine DataTable.The input sequence can be any IEnumerable<T> source, not only a query or a query over a DataTable. Beachten Sie Folgendes: Wenn die Quell Sequenz eine Abfrage ist, wird durch das Aufrufen dieses Operators die sofortige Ausführung erzwungen.Note that if the source sequence is a query, calling this operator will force immediate execution. Das Auflisten der Quell Sequenz kann auch dazu führen, dass Ausnahmen ausgelöst werden.Enumerating the source sequence can also cause exceptions to be thrown.

Das Schema der Ziel Tabelle basiert auf dem Schema der ersten Zeile DataRow in der Quell Sequenz.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Die Tabellen Metadaten werden aus den DataRow-Metadaten und den Tabellenwerten aus den Spaltenwerten des DataRow extrahiert.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Bei typisierten DataTable werden die Typen nicht beibehalten.For a typed DataTable, types are not preserved. Die Daten und das Schema werden übertragen, aber die resultierenden Zeilen der Ausgabe Tabelle weisen nicht den typisierten DataRow-Typ auf.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Die Eigenschaften RowState und RowError werden während der Kopie von der Quelle DataRow in die zurückgegebene DataTable nicht beibehalten.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Wenn ein null -Verweis oder ein Werte zulässt-Typ mit dem Wert null in einer Quelle DataRow gefunden wird, ersetzt diese Methode den Wert im Ziel DataTable durch den Wert 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.

Die generierte Tabelle, die von der-Methode zurückgegeben wird, hat den Standard Tabellennamen.The generated table returned by the method has the default table name. Wenn Sie die DataTable benennen, Sie an einen DataSet anfügen oder einen anderen DataTable-spezifischen Vorgang ausführen möchten, müssen Sie dies tun, nachdem die Tabelle erstellt und zurückgegeben wurde.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.

Weitere Informationen finden Sie unter Erstellen einer Datentabelle aus einer Abfrage.For more information, see Creating a DataTable From a Query.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) 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.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)

Typparameter

T

Der Typ der Objekte in der Quellsequenz, meist DataRow.The type of objects in the source sequence, typically DataRow.

Parameter

table
DataTable DataTable DataTable DataTable

Der Ziel-DataTable.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Eine LoadOption-Enumeration, die die DataTable-Ladeoptionen angibt.A LoadOption enumeration that specifies the DataTable load options.

Ausnahmen

Die kopierten DataRow-Objekte stimmen nicht mit dem Schema der Ziel-DataTable überein.The copied DataRow objects do not fit the schema of the destination DataTable.

Die IEnumerable<T>-Quellsequenz ist null, oder die Ziel-DataTable ist null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Eine DataRow in der Quellsequenz hat einen Zustand von Deleted.A DataRow in the source sequence has a state of Deleted.

Die Quellsequenz enthält keine DataRow-Objekte.The source sequence does not contain any DataRow objects.

Eine DataRow in der Quellsequenz ist null.A DataRow in the source sequence is null.

Hinweise

Der Parameter "T" des Eingabe Parameters "source" darf nur den Typ "DataRow" oder einen von "DataRow" abgeleiteten Typ aufweisen.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

Die Eingabe Sequenz kann eine beliebige IEnumerable<T>-Quelle sein, nicht nur eine Abfrage über eine DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Beachten Sie Folgendes: Wenn die Quell Sequenz eine Abfrage ist, wird durch das Aufrufen dieses Operators die sofortige Ausführung erzwungen.Note that if the source sequence is a query, calling this operator will force immediate execution. Das Auflisten der Quell Sequenz kann auch dazu führen, dass Ausnahmen ausgelöst werden.Enumerating the source sequence can also cause exceptions to be thrown.

Das Schema der Ziel Tabelle basiert auf dem Schema der ersten Zeile DataRow in der Quell Sequenz.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Die Tabellen Metadaten werden aus den DataRow-Metadaten und den Tabellenwerten aus den Spaltenwerten des DataRow extrahiert.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Bei typisierten DataTable werden die Typen nicht beibehalten.For a typed DataTable, types are not preserved. Die Daten und das Schema werden übertragen, aber die resultierenden Zeilen der Ausgabe Tabelle weisen nicht den typisierten DataRow-Typ auf.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Die Eigenschaften RowState und RowError werden während der Kopie von der Quelle DataRow in die zurückgegebene DataTable nicht beibehalten.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Wenn ein null -Verweis oder ein Werte zulässt-Typ mit dem Wert null in einer Quelle DataRow gefunden wird, ersetzt diese Methode den Wert im Ziel DataTable durch den Wert 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.

Die generierte Tabelle, die von der-Methode zurückgegeben wird, hat den Standard Tabellennamen.The generated table returned by the method has the default table name. Wenn Sie die DataTable benennen, Sie an einen DataSet anfügen oder einen anderen DataTable-spezifischen Vorgang ausführen möchten, müssen Sie dies tun, nachdem die Tabelle erstellt und zurückgegeben wurde.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.

Weitere Informationen finden Sie unter Erstellen einer Datentabelle aus einer Abfrage.For more information, see Creating a DataTable From a Query.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) 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.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;
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.The type of objects in the source sequence, typically DataRow.

Parameter

table
DataTable DataTable DataTable DataTable

Der Ziel-DataTable.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

Eine LoadOption-Enumeration, die die DataTable-Ladeoptionen angibt.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler

Ein FillErrorEventHandler-Delegat, der die Methode darstellt, die einen Fehler behandelt.A FillErrorEventHandler delegate that represents the method that will handle an error.

Ausnahmen

Die kopierten DataRow-Objekte stimmen nicht mit dem Schema der Ziel-DataTable überein.The copied DataRow objects do not fit the schema of the destination DataTable.

Die IEnumerable<T>-Quellsequenz ist null, oder die Ziel-DataTable ist null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

Eine DataRow in der Quellsequenz hat einen Zustand von Deleted.A DataRow in the source sequence has a state of Deleted.

- oder --or- Die Quellsequenz enthält keine DataRow-Objekte.The source sequence does not contain any DataRow objects.

- oder --or- Eine DataRow in der Quellsequenz ist null.A DataRow in the source sequence is null.

Hinweise

Der Parameter "T" des Eingabe Parameters "source" darf nur den Typ "DataRow" oder einen von "DataRow" abgeleiteten Typ aufweisen.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

Die Eingabe Sequenz kann eine beliebige IEnumerable<T>-Quelle sein, nicht nur eine Abfrage über eine DataTable.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Beachten Sie Folgendes: Wenn die Quell Sequenz eine Abfrage ist, wird durch das Aufrufen dieses Operators die sofortige Ausführung erzwungen.Note that if the source sequence is a query, calling this operator will force immediate execution. Das Auflisten der Quell Sequenz kann auch dazu führen, dass Ausnahmen ausgelöst werden.Enumerating the source sequence can also cause exceptions to be thrown.

Das Schema der Ziel Tabelle basiert auf dem Schema der ersten Zeile DataRow in der Quell Sequenz.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Die Tabellen Metadaten werden aus den DataRow-Metadaten und den Tabellenwerten aus den Spaltenwerten des DataRow extrahiert.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Bei typisierten DataTable werden die Typen nicht beibehalten.For a typed DataTable, types are not preserved. Die Daten und das Schema werden übertragen, aber die resultierenden Zeilen der Ausgabe Tabelle weisen nicht den typisierten DataRow-Typ auf.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Die Eigenschaften RowState und RowError werden während der Kopie von der Quelle DataRow in die zurückgegebene DataTable nicht beibehalten.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Wenn ein null -Verweis oder ein Werte zulässt-Typ mit dem Wert null in einer Quelle DataRow gefunden wird, ersetzt diese Methode den Wert im Ziel DataTable durch den Wert 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.

Die generierte Tabelle, die von der-Methode zurückgegeben wird, hat den Standard Tabellennamen.The generated table returned by the method has the default table name. Wenn Sie die DataTable benennen, Sie an einen DataSet anfügen oder einen anderen DataTable-spezifischen Vorgang ausführen möchten, müssen Sie dies tun, nachdem die Tabelle erstellt und zurückgegeben wurde.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.

Wenn eine Ausnahme während der Kopie einer Daten Zeile in die Ziel Tabelle ausgelöst wird, z. b. eine Einschränkungs Ausnahme, wird der errorHandler-Delegat aufgerufen.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. Ein FillErrorEventArgs wird an den errorHandler-Delegaten mit den folgenden Werten übermittelt:A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • Die Values-Eigenschaft wird auf eine Kopie der Quelldaten festgelegt.The Values property is set to a copy of the source data.

  • Die DataTable-Eigenschaft wird auf den Ziel DataTable festgelegt.The DataTable property is set to the target DataTable.

  • Die Errors-Eigenschaft wird auf die abgefangene Ausnahme festgelegt.The Errors property is set to the caught exception.

Die Continue-Eigenschaft wird gelesen, nachdem der Delegataufruf zurückgegeben wurde.The Continue property is read after the delegate call returns. Wenn die Continue-Eigenschaft true ist, wird die Quell Sequenz weiterhin aufgezählt und in die Datentabelle geladen.If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Wenn die Continue-Eigenschaft false ist, wird die ursprüngliche Ausnahme von der CopyToDataTable-Methode ausgelöst.If the Continue property is false, the original exception is thrown from the CopyToDataTable method.

Weitere Informationen finden Sie unter Erstellen einer Datentabelle aus einer Abfrage.For more information, see Creating a DataTable From a Query.

Gilt für: