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

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

DataTable

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 Tabelle "SalesOrderHeader" nach bestellungen nach dem 8. August 2001 abfragen und die CopyToDataTable Methode zum Erstellen einer DataTable Aus dieser Abfrage verwendet. 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 typ abgeleiteten DataRowTyp sein.

Die Eingabesequenz kann eine beliebige IEnumerable<T> Quelle sein, nicht nur eine Abfrage oder eine Abfrage über eine DataTable. Wenn die Quellsequenz eine Abfrage ist, erzwingt das Aufrufen 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 den Tabellenwerten aus den Spaltenwerten der DataRow. Für eine typierte DataTable, Typen werden nicht beibehalten. Die Daten und das Schema werden übertragen, aber die resultierenden Zeilen der Ausgabetabelle sind nicht vom typierten DataRow Typ. Die RowState Eigenschaften RowError werden während der Kopie aus der Quelle nicht in der zurückgegebenen DataTableDatei DataRow beibehalten.

Wenn ein Nullverweis oder nullabler Typ mit einem Wert von Null in einer Quelle DataRowgefunden wird, ersetzt diese Methode den Wert im Ziel DataTable durch einen Wert von Value.

Die generierte Tabelle, die von der Methode zurückgegeben wird, weist den Standardtabellennamen auf. Wenn Sie die DataTableDatei benennen möchten, sie an einen DataSetoder einen anderen DataTable spezifischen Vorgang anfügen 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)

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 von einem typ abgeleiteten Typ sein DataRow.

Die Eingabesequenz kann eine beliebige IEnumerable<T> Quelle sein, nicht nur eine Abfrage über eine DataTable. Wenn die Quellsequenz eine Abfrage ist, erzwingt das Aufrufen 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 den Tabellenwerten aus den Spaltenwerten der DataRow. Für eine typierte DataTable, Typen werden nicht beibehalten. Die Daten und das Schema werden übertragen, aber die resultierenden Zeilen der Ausgabetabelle sind nicht vom typierten DataRow Typ. Die RowState Eigenschaften RowError werden während der Kopie aus der Quelle nicht in der zurückgegebenen DataTableDatei DataRow beibehalten.

Wenn ein Nullverweis oder nullabler Typ mit einem Wert von Null in einer Quelle DataRowgefunden wird, ersetzt diese Methode den Wert im Ziel DataTable durch einen Wert von Value.

Die generierte Tabelle, die von der Methode zurückgegeben wird, weist den Standardtabellennamen auf. Wenn Sie die DataTableDatei benennen möchten, sie an einen DataSetoder einen anderen DataTable spezifischen Vorgang anfügen 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)

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 von einem typ abgeleiteten Typ sein DataRow.

Die Eingabesequenz kann eine beliebige IEnumerable<T> Quelle sein, nicht nur eine Abfrage über eine DataTable. Wenn die Quellsequenz eine Abfrage ist, erzwingt das Aufrufen 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 den Tabellenwerten aus den Spaltenwerten der DataRow. Für eine typierte DataTable, Typen werden nicht beibehalten. Die Daten und das Schema werden übertragen, aber die resultierenden Zeilen der Ausgabetabelle sind nicht vom typierten DataRow Typ. Die RowState Eigenschaften RowError werden während der Kopie aus der Quelle nicht in der zurückgegebenen DataTableDatei DataRow beibehalten.

Wenn ein Nullverweis oder nullabler Typ mit einem Wert von Null in einer Quelle DataRowgefunden wird, ersetzt diese Methode den Wert im Ziel DataTable durch einen Wert von Value.

Die generierte Tabelle, die von der Methode zurückgegeben wird, weist den Standardtabellennamen auf. Wenn Sie die DataTableDatei benennen möchten, sie an einen DataSetoder einen anderen DataTable spezifischen Vorgang anfügen möchten, müssen Sie dies tun, nachdem die Tabelle erstellt und zurückgegeben wurde.

Wenn während der Kopie einer Datenzeile in die Zieltabelle eine Ausnahme ausgelöst wird, z. B. eine Einschränkungs ausnahme, wird die errorHandler Stellvertretung aufgerufen. Eine FillErrorEventArgs wird an die errorHandler Stellvertretung mit den folgenden Werten ü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 Stellvertretungsaufruf zurückgegeben wurde. Wenn die Continue Eigenschaft lautet true, wird die Quellsequenz weiterhin aufgezählt und in die Datentabelle geladen. Wenn die Continue Eigenschaft lautet false, wird die ursprüngliche Ausnahme aus der CopyToDataTable Methode ausgelöst.

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

Gilt für: