DataTableExtensions.CopyToDataTable Metoda

Definicja

Zwraca DataTable zawierający kopie obiektów DataRow, 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, który zawiera kopie obiektów DataRow, przy użyciu obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego 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 obiektów do określonego DataTable, używając obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest 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 obiektów do określonego DataTable, używając obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest 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, który zawiera kopie obiektów DataRow, przy użyciu obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego 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, zwykle DataRow.The type of objects in the source sequence, typically DataRow.

Parametry

source
IEnumerable<T>

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

Zwraca

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

Wyjątki

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

DataRow w 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 obiektów DataRow.The source sequence does not contain any DataRow objects.

DataRow w sekwencji źródłowej jest 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 metody CopyToDataTable, aby utworzyć 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. DataTable jest następnie powiązane 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

T parametru wejściowego 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ć dowolnymi źródłami IEnumerable<T>, 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 wiersza DataRow 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 metadanych DataRow i wartości tabeli 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. W przypadku wpisanej DataTabletypy 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ą miały określonego typu DataRow.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Właściwości RowState i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwróconego DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Gdy w DataRowźródłowym znajduje się odwołanie o wartości null lub typ dopuszczający wartość null , ta metoda zastępuje wartość w DataTable docelowym 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łącz ją do DataSetlub wykonaj inną DataTable konkretną operację, musisz 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)

Kopiuje DataRow obiektów do określonego DataTable, używając obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest 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, zwykle DataRow.The type of objects in the source sequence, typically DataRow.

Parametry

source
IEnumerable<T>

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

table
DataTable

DataTabledocelowy.The destination DataTable.

options
LoadOption

Wyliczenie LoadOption, które określa DataTable opcje ładowania.A LoadOption enumeration that specifies the DataTable load options.

Wyjątki

Skopiowane obiekty DataRow nie pasują do schematu DataTabledocelowego.The copied DataRow objects do not fit the schema of the destination DataTable.

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

DataRow w 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 obiektów DataRow.The source sequence does not contain any DataRow objects.

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

Uwagi

T parametru wejściowego source może być tylko typu DataRowlub typem pochodnym z 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ć dowolnymi źródłami IEnumerable<T>, nie tylko zapytania 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 wiersza DataRow 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 metadanych DataRow i wartości tabeli 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. W przypadku wpisanej DataTabletypy 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ą miały określonego typu DataRow.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Właściwości RowState i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwróconego DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Gdy w DataRowźródłowym znajduje się odwołanie o wartości null lub typ dopuszczający wartość null , ta metoda zastępuje wartość w DataTable docelowym 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łącz ją do DataSetlub wykonaj inną DataTable konkretną operację, musisz 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)

Kopiuje DataRow obiektów do określonego DataTable, używając obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest 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;
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, zwykle DataRow.The type of objects in the source sequence, typically DataRow.

Parametry

source
IEnumerable<T>

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

table
DataTable

DataTabledocelowy.The destination DataTable.

options
LoadOption

Wyliczenie LoadOption, które określa DataTable opcje ładowania.A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler

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

Wyjątki

Skopiowane obiekty DataRow nie pasują do schematu DataTabledocelowego.The copied DataRow objects do not fit the schema of the destination DataTable.

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

DataRow w 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 obiektów DataRow.The source sequence does not contain any DataRow objects.

lub-or- DataRow w sekwencji źródłowej jest null.A DataRow in the source sequence is null.

Uwagi

T parametru wejściowego source może być tylko typu DataRowlub typem pochodnym z 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ć dowolnymi źródłami IEnumerable<T>, nie tylko zapytania 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 wiersza DataRow 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 metadanych DataRow i wartości tabeli 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. W przypadku wpisanej DataTabletypy 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ą miały określonego typu DataRow.The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. Właściwości RowState i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwróconego DataTable.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Gdy w DataRowźródłowym znajduje się odwołanie o wartości null lub typ dopuszczający wartość null , ta metoda zastępuje wartość w DataTable docelowym 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łącz ją do DataSetlub wykonaj inną DataTable konkretną operację, musisz 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, zostanie wywołany delegat errorHandler.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. FillErrorEventArgs jest przenoszona do delegata errorHandler z następującymi wartościami:A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

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

  • Właściwość DataTable jest ustawiona na DataTabledocelowy.The DataTable property is set to the target DataTable.

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

Właściwość Continue jest odczytywana po powrocie wywołania delegata.The Continue property is read after the delegate call returns. Jeśli właściwość Continue jest true, sekwencja źródłowa będzie 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 właściwość Continue jest false, oryginalny wyjątek jest generowany z metody CopyToDataTable.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