DataTableExtensions.CopyToDataTable Metoda

Definicja

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

Przeciążenia

CopyToDataTable<T>(IEnumerable<T>)

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

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

Kopiuje DataRow obiekty do określonego DataTable , przy użyciu obiektu wejściowego, IEnumerable<T> w którym jest parametr generyczny T DataRow .Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>)

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

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>

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

Zwraca

DataTable

A DataTable , który zawiera sekwencję wejściową jako typ DataRow 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.

DataRowW sekwencji źródłowej ma stan Deleted .A 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.

DataRowW sekwencji źródłowej to null .A 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 utworzenia DataTable 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. DataTableNastępnie jest powiązany z BindingSource , który działa jako serwer proxy dla DataGridView .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

Uwagi

Parametr T wejściowy source może być tylko typu DataRow lub typu pochodnego od DataRow .The 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 w DataTable .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 kolumn DataRow .The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Dla typu DataTable , typy nie są zachowywane.For a typed DataTable, types are not preserved. Dane i schemat są transferowane, ale wynikowe wiersze tabeli wyjściowej nie będą DataRow typu Type.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. RowStateWłaściwości i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwracanego DataTable .The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Gdy w źródle znaleziono odwołanie o wartości null lub typ dopuszczający wartość null DataRow , 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ą do DataSet 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.

Dotyczy

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 parametr generyczny T DataRow .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>

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

table
DataTable

Miejsce docelowe DataTable .The destination DataTable.

options
LoadOption

LoadOptionWyliczenie określające DataTable 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ą docelową DataTable null .The source IEnumerable<T> sequence is null or the destination DataTable is null.

DataRowW sekwencji źródłowej ma stan Deleted .A 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.

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

Uwagi

Parametr T wejściowy source może być tylko typu DataRow lub typu pochodnego od DataRow .The 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 w DataTable .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 kolumn DataRow .The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Dla typu DataTable , typy nie są zachowywane.For a typed DataTable, types are not preserved. Dane i schemat są transferowane, ale wynikowe wiersze tabeli wyjściowej nie będą DataRow typu Type.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. RowStateWłaściwości i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwracanego DataTable .The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Gdy w źródle znaleziono odwołanie o wartości null lub typ dopuszczający wartość null DataRow , 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ą do DataSet 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.

Dotyczy

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 parametr generyczny T DataRow .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;
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>

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

table
DataTable

Miejsce docelowe DataTable .The destination DataTable.

options
LoadOption

LoadOptionWyliczenie określające DataTable Opcje ładowania.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler

FillErrorEventHandlerDelegat 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ą docelową DataTable null .The source IEnumerable<T> sequence is null or the destination DataTable is null.

DataRowW sekwencji źródłowej ma stan Deleted .A 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- DataRowW sekwencji źródłowej to null .A DataRow in the source sequence is null.

Uwagi

Parametr T wejściowy source może być tylko typu DataRow lub typu pochodnego od DataRow .The 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 w DataTable .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 kolumn DataRow .The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. Dla typu DataTable , typy nie są zachowywane.For a typed DataTable, types are not preserved. Dane i schemat są transferowane, ale wynikowe wiersze tabeli wyjściowej nie będą DataRow typu Type.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. RowStateWłaściwości i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwracanego DataTable .The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Gdy w źródle znaleziono odwołanie o wartości null lub typ dopuszczający wartość null DataRow , 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ą do DataSet 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 do errorHandler delegata o następujących wartościach:A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

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

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

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

ContinueWłaściwość jest odczytywana po powrocie wywołania delegata.The Continue property is read after the delegate call returns. Jeśli Continue Właściwość jest true , sekwencja źródłowa jest nadal wyliczana i ładowana do tabeli danych.If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. Jeśli Continue Właściwość ma wartość false , oryginalny wyjątek jest generowany z CopyToDataTable metody.If 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