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

Definicja

Zwraca obiekt, DataRow IEnumerable<T> który zawiera kopie obiektów, przy użyciu obiektu wejściowego. DataTableReturns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object.

Przeciążenia

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

DataRow T IEnumerable<T> Zwraca obiekt, DataRow który zawiera kopie obiektów, z uwzględnieniem obiektu wejściowego, w którym parametr generyczny jest. DataTableReturns 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)

Kopiuje DataRow obiekty do określonego DataTable, przy użyciu obiektu wejściowego IEnumerable<T> , w którym jest T DataRowparametr generyczny.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)

Kopiuje DataRow obiekty do określonego DataTable, przy użyciu obiektu wejściowego IEnumerable<T> , w którym jest T DataRowparametr generyczny.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>)

DataRow T IEnumerable<T> Zwraca obiekt, DataRow który zawiera kopie obiektów, z uwzględnieniem obiektu wejściowego, w którym parametr generyczny jest. DataTableReturns 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

Parametry typu

T

Typ obiektów w sekwencji źródłowej, zazwyczaj DataRow.The type of objects in the source sequence, typically DataRow.

Parametry

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Sekwencja źródłowa IEnumerable<T> .The source IEnumerable<T> sequence.

Zwraca

A DataTable , który zawiera sekwencję wejściową jako DataRow typ obiektów.A DataTable that contains the input sequence as the type of DataRow objects.

Wyjątki

Sekwencja źródłowa IEnumerable<T> jest null i nie można utworzyć nowej tabeli.The source IEnumerable<T> sequence is null and a new table cannot be created.

W sekwencji źródłowej ma Deletedstan. DataRowA DataRow in the source sequence has a state of Deleted.

Sekwencja źródłowa nie zawiera żadnych DataRow obiektów.The source sequence does not contain any DataRow objects.

W sekwencji źródłowej to null. DataRowA DataRow in the source sequence is null.

Przykłady

Poniższy przykład wysyła zapytanie do tabeli SalesOrderHeader dla zamówień po 8 sierpnia 2001 i używa CopyToDataTable metody do DataTable utworzenia z tego zapytania.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. Następnie jest powiązany BindingSourcez, który DataGridViewdziała jako serwer proxy dla. DataTableThe 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

Uwagi

Parametr T DataRow DataRowwejściowy może być tylko typu lub typu pochodnego od. sourceThe parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

Sekwencja wejściowa może być dowolnym IEnumerable<T> źródłem, nie tylko zapytania lub zapytania DataTablew.The input sequence can be any IEnumerable<T> source, not only a query or a query over a DataTable. Należy pamiętać, że jeśli sekwencja źródłowa jest kwerendą, wywołanie tego operatora spowoduje wymuszenie natychmiastowego wykonania.Note that if the source sequence is a query, calling this operator will force immediate execution. Wyliczenie sekwencji źródłowej może również spowodować wyrzucanie wyjątków.Enumerating the source sequence can also cause exceptions to be thrown.

Schemat tabeli docelowej jest oparty na schemacie pierwszego DataRow wiersza w sekwencji źródłowej.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Metadane tabeli są wyodrębniane z DataRow metadanych i wartości tabel z wartości DataRowkolumn.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Dla typu, typy nie są zachowywane. DataTableFor a typed DataTable, types are not preserved. Dane i schemat są transferowane, ale wynikowe wiersze tabeli wyjściowej nie DataRow będą typu Type.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. DataRow DataTableWłaściwości i nieRowError są zachowywane podczas kopiowania ze źródła do zwracanego. RowStateThe RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Gdy w źródle DataRowznaleziono odwołanie o wartości null lub typ dopuszczający wartość null , ta metoda zastępuje wartość w miejscu docelowym DataTable wartością 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.

Wygenerowana tabela zwrócona przez metodę ma domyślną nazwę tabeli.The generated table returned by the method has the default table name. Jeśli chcesz nazwać DataTable, dołączyć ją DataSetdo lub wykonać inną DataTable konkretną operację, należy to zrobić po utworzeniu i zwróceniu tabeli.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.

Aby uzyskać więcej informacji, zobacz Tworzenie elementu DataTable na podstawie zapytania.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)

Kopiuje DataRow obiekty do określonego DataTable, przy użyciu obiektu wejściowego IEnumerable<T> , w którym jest T DataRowparametr generyczny.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)

Parametry typu

T

Typ obiektów w sekwencji źródłowej, zazwyczaj DataRow.The type of objects in the source sequence, typically DataRow.

Parametry

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Sekwencja źródłowa IEnumerable<T> .The source IEnumerable<T> sequence.

table
DataTable DataTable DataTable DataTable

Miejsce docelowe DataTable.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

LoadOption Wyliczenie określająceDataTable opcje ładowania.A LoadOption enumeration that specifies the DataTable load options.

Wyjątki

Skopiowane DataRow obiekty nie mieszczą się w schemacie docelowej DataTable.The copied DataRow objects do not fit the schema of the destination DataTable.

Sekwencja źródłowa IEnumerable<T> jest null lub lokalizacją DataTable docelową null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

W sekwencji źródłowej ma Deletedstan. DataRowA DataRow in the source sequence has a state of Deleted.

Sekwencja źródłowa nie zawiera żadnych DataRow obiektów.The source sequence does not contain any DataRow objects.

W sekwencji źródłowej to null. DataRowA DataRow in the source sequence is null.

Uwagi

Parametr T DataRow DataRowwejściowy może być tylko typu lub typu pochodnego od. sourceThe parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

Sekwencja wejściowa może być dowolnym IEnumerable<T> źródłem, nie tylko zapytaniem DataTablew.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Należy pamiętać, że jeśli sekwencja źródłowa jest kwerendą, wywołanie tego operatora spowoduje wymuszenie natychmiastowego wykonania.Note that if the source sequence is a query, calling this operator will force immediate execution. Wyliczenie sekwencji źródłowej może również spowodować wyrzucanie wyjątków.Enumerating the source sequence can also cause exceptions to be thrown.

Schemat tabeli docelowej jest oparty na schemacie pierwszego DataRow wiersza w sekwencji źródłowej.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Metadane tabeli są wyodrębniane z DataRow metadanych i wartości tabel z wartości DataRowkolumn.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Dla typu, typy nie są zachowywane. DataTableFor a typed DataTable, types are not preserved. Dane i schemat są transferowane, ale wynikowe wiersze tabeli wyjściowej nie DataRow będą typu Type.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. DataRow DataTableWłaściwości i nieRowError są zachowywane podczas kopiowania ze źródła do zwracanego. RowStateThe RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Gdy w źródle DataRowznaleziono odwołanie o wartości null lub typ dopuszczający wartość null , ta metoda zastępuje wartość w miejscu docelowym DataTable wartością 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.

Wygenerowana tabela zwrócona przez metodę ma domyślną nazwę tabeli.The generated table returned by the method has the default table name. Jeśli chcesz nazwać DataTable, dołączyć ją DataSetdo lub wykonać inną DataTable konkretną operację, należy to zrobić po utworzeniu i zwróceniu tabeli.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.

Aby uzyskać więcej informacji, zobacz Tworzenie elementu DataTable na podstawie zapytania.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)

Kopiuje DataRow obiekty do określonego DataTable, przy użyciu obiektu wejściowego IEnumerable<T> , w którym jest T DataRowparametr generyczny.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)

Parametry typu

T

Typ obiektów w sekwencji źródłowej, zazwyczaj DataRow.The type of objects in the source sequence, typically DataRow.

Parametry

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Sekwencja źródłowa IEnumerable<T> .The source IEnumerable<T> sequence.

table
DataTable DataTable DataTable DataTable

Miejsce docelowe DataTable.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

LoadOption Wyliczenie określająceDataTable opcje ładowania.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler

FillErrorEventHandler Delegat reprezentujący metodę, która będzie obsługiwać błąd.A FillErrorEventHandler delegate that represents the method that will handle an error.

Wyjątki

Skopiowane DataRow obiekty nie mieszczą się w schemacie docelowej DataTable.The copied DataRow objects do not fit the schema of the destination DataTable.

Sekwencja źródłowa IEnumerable<T> jest null lub lokalizacją DataTable docelową null.The source IEnumerable<T> sequence is null or the destination DataTable is null.

W sekwencji źródłowej ma Deletedstan. DataRowA DataRow in the source sequence has a state of Deleted.

—lub—-or- Sekwencja źródłowa nie zawiera żadnych DataRow obiektów.The source sequence does not contain any DataRow objects.

—lub—-or- W sekwencji źródłowej to null. DataRowA DataRow in the source sequence is null.

Uwagi

Parametr T DataRow DataRowwejściowy może być tylko typu lub typu pochodnego od. sourceThe parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

Sekwencja wejściowa może być dowolnym IEnumerable<T> źródłem, nie tylko zapytaniem DataTablew.The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. Należy pamiętać, że jeśli sekwencja źródłowa jest kwerendą, wywołanie tego operatora spowoduje wymuszenie natychmiastowego wykonania.Note that if the source sequence is a query, calling this operator will force immediate execution. Wyliczenie sekwencji źródłowej może również spowodować wyrzucanie wyjątków.Enumerating the source sequence can also cause exceptions to be thrown.

Schemat tabeli docelowej jest oparty na schemacie pierwszego DataRow wiersza w sekwencji źródłowej.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. Metadane tabeli są wyodrębniane z DataRow metadanych i wartości tabel z wartości DataRowkolumn.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Dla typu, typy nie są zachowywane. DataTableFor a typed DataTable, types are not preserved. Dane i schemat są transferowane, ale wynikowe wiersze tabeli wyjściowej nie DataRow będą typu Type.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. DataRow DataTableWłaściwości i nieRowError są zachowywane podczas kopiowania ze źródła do zwracanego. RowStateThe RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Gdy w źródle DataRowznaleziono odwołanie o wartości null lub typ dopuszczający wartość null , ta metoda zastępuje wartość w miejscu docelowym DataTable wartością 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.

Wygenerowana tabela zwrócona przez metodę ma domyślną nazwę tabeli.The generated table returned by the method has the default table name. Jeśli chcesz nazwać DataTable, dołączyć ją DataSetdo lub wykonać inną DataTable konkretną operację, należy to zrobić po utworzeniu i zwróceniu tabeli.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.

Jeśli wyjątek jest zgłaszany podczas kopiowania wiersza danych do tabeli docelowej, na przykład wyjątek ograniczenia, errorHandler obiekt delegowany jest wywoływany.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. Element FillErrorEventArgs jest przesyłany errorHandler do delegata o następujących wartościach:A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • Values Właściwość jest ustawiona na kopię danych źródłowych.The Values property is set to a copy of the source data.

  • Właściwość jest ustawiona na wartość docelową DataTable. DataTableThe DataTable property is set to the target DataTable.

  • Errors Właściwość jest ustawiona na przechwycony wyjątek.The Errors property is set to the caught exception.

Continue Właściwość jest odczytywana po powrocie wywołania delegata.The Continue property is read after the delegate call returns. Jeśli właściwość jest true, sekwencja źródłowa jest nadal wyliczana i ładowana do tabeli danych. ContinueIf the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Jeśli właściwość ma falsewartość, oryginalny CopyToDataTable wyjątek jest generowany z metody. ContinueIf the Continue property is false, the original exception is thrown from the CopyToDataTable method.

Aby uzyskać więcej informacji, zobacz Tworzenie elementu DataTable na podstawie zapytania.For more information, see Creating a DataTable From a Query.

Dotyczy