DataTableExtensions.CopyToDataTable Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca obiekt DataTable zawierający kopie DataRow obiektów, biorąc pod uwagę obiekt wejściowy IEnumerable<T> .
Przeciążenia
CopyToDataTable<T>(IEnumerable<T>) |
Zwraca obiekt DataTable zawierający kopie DataRow obiektów, biorąc pod uwagę obiekt wejściowy IEnumerable<T> , w którym parametr |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
Kopiuje DataRow obiekty do określonego DataTableobiektu , biorąc pod uwagę obiekt wejściowy IEnumerable<T> , gdzie parametr |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
Kopiuje DataRow obiekty do określonego DataTableobiektu , biorąc pod uwagę obiekt wejściowy IEnumerable<T> , gdzie parametr |
CopyToDataTable<T>(IEnumerable<T>)
Zwraca obiekt DataTable zawierający kopie DataRow obiektów, biorąc pod uwagę obiekt wejściowy IEnumerable<T> , w którym parametr T
ogólny to 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.
Parametry
- source
- IEnumerable<T>
Sekwencja źródłowa IEnumerable<T> .
Zwraca
Obiekt DataTable zawierający sekwencję wejściową jako typ DataRow obiektów.
Wyjątki
Sekwencja źródłowa IEnumerable<T> jest null
i nie można utworzyć nowej tabeli.
Element DataRow w sekwencji źródłowej ma stan Deleted.
Sekwencja źródłowa nie zawiera żadnych DataRow obiektów.
Element DataRow w sekwencji źródłowej to null
.
Przykłady
Poniższy przykład wykonuje zapytanie do tabeli SalesOrderHeader pod kątem zamówień po 8 sierpnia 2001 r. i używa CopyToDataTable metody do utworzenia elementu DataTable na podstawie tego zapytania. Element DataTable jest następnie powiązany z elementem BindingSource, który działa jako serwer proxy dla elementu 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
parametru source
wejściowego może być typu DataRow lub typu pochodzącego z DataRowklasy .
Sekwencja wejściowa może być dowolnym IEnumerable<T> źródłem, nie tylko zapytaniem lub zapytaniem względem elementu DataTable. Należy pamiętać, że jeśli sekwencja źródłowa jest zapytaniem, wywołanie tego operatora wymusi natychmiastowe wykonanie. Wyliczanie sekwencji źródłowej może również powodować zgłaszanie wyjątków.
Schemat tabeli docelowej jest oparty na schemacie pierwszego DataRow wiersza w sekwencji źródłowej. Metadane tabeli są wyodrębniane z DataRow metadanych i wartości tabeli z wartości kolumny .DataRow W przypadku typowanych DataTabletypów typy nie są zachowywane. Dane i schemat są przesyłane, ale wynikowe wiersze tabeli wyjściowej nie będą typu DataRow . Właściwości RowState i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwróconego elementu DataTable.
Gdy w źródle DataRowznajduje się odwołanie o wartości null lub typ dopuszczalny wartości null, ta metoda zastępuje wartość w miejscu docelowym DataTable wartością Value.
Wygenerowana tabela zwrócona przez metodę ma domyślną nazwę tabeli. Jeśli chcesz nazwać element , dołączyć ją do obiektu lub wykonać inną konkretną DataSetDataTable operację, musisz to zrobić po utworzeniu DataTablei zwróceniu tabeli.
Aby uzyskać więcej informacji, zobacz Creating a DataTable From a Query (Tworzenie tabeli danych na podstawie zapytania).
Dotyczy
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)
Kopiuje DataRow obiekty do określonego DataTableobiektu , biorąc pod uwagę obiekt wejściowy IEnumerable<T> , gdzie parametr T
ogólny to 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.
Parametry
- source
- IEnumerable<T>
Sekwencja źródłowa IEnumerable<T> .
- options
- LoadOption
Wyliczenie LoadOption określające DataTable opcje ładowania.
Wyjątki
Sekwencja źródłowa IEnumerable<T> to null
lub miejsce docelowe DataTable to null
.
Element DataRow w sekwencji źródłowej ma stan Deleted.
Sekwencja źródłowa nie zawiera żadnych DataRow obiektów.
Element DataRow w sekwencji źródłowej to null
.
Uwagi
Parametr T
parametru source
wejściowego może być tylko typu DataRowlub typu pochodzącego z DataRowklasy .
Sekwencja wejściowa może być dowolnym IEnumerable<T> źródłem, a nie tylko zapytaniem względem elementu DataTable. Należy pamiętać, że jeśli sekwencja źródłowa jest zapytaniem, wywołanie tego operatora wymusi natychmiastowe wykonanie. Wyliczanie sekwencji źródłowej może również powodować zgłaszanie wyjątków.
Schemat tabeli docelowej jest oparty na schemacie pierwszego DataRow wiersza w sekwencji źródłowej. Metadane tabeli są wyodrębniane z DataRow metadanych i wartości tabeli z wartości kolumny .DataRow W przypadku typowanych DataTabletypów typy nie są zachowywane. Dane i schemat są przesyłane, ale wynikowe wiersze tabeli wyjściowej nie będą typu DataRow . Właściwości RowState i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwróconego elementu DataTable.
Gdy w źródle DataRowznajduje się odwołanie o wartości null lub typ dopuszczalny wartości null, ta metoda zastępuje wartość w miejscu docelowym DataTable wartością Value.
Wygenerowana tabela zwrócona przez metodę ma domyślną nazwę tabeli. Jeśli chcesz nazwać element , dołączyć ją do obiektu lub wykonać inną konkretną DataSetDataTable operację, musisz to zrobić po utworzeniu DataTablei zwróceniu tabeli.
Aby uzyskać więcej informacji, zobacz Creating a DataTable From a Query (Tworzenie tabeli danych na podstawie zapytania).
Dotyczy
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)
Kopiuje DataRow obiekty do określonego DataTableobiektu , biorąc pod uwagę obiekt wejściowy IEnumerable<T> , gdzie parametr T
ogólny to 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.
Parametry
- source
- IEnumerable<T>
Sekwencja źródłowa IEnumerable<T> .
- options
- LoadOption
Wyliczenie LoadOption określające DataTable opcje ładowania.
- errorHandler
- FillErrorEventHandler
Delegat FillErrorEventHandler reprezentujący metodę, która obsłuży błąd.
Wyjątki
Sekwencja źródłowa IEnumerable<T> to null
lub miejsce docelowe DataTable to null
.
Element DataRow w sekwencji źródłowej ma stan Deleted.
-lub-
Sekwencja źródłowa nie zawiera żadnych DataRow obiektów.
-lub-
Element DataRow w sekwencji źródłowej to null
.
Uwagi
Parametr T
parametru source
wejściowego może być tylko typu DataRowlub typu pochodzącego z DataRowklasy .
Sekwencja wejściowa może być dowolnym IEnumerable<T> źródłem, a nie tylko zapytaniem względem elementu DataTable. Należy pamiętać, że jeśli sekwencja źródłowa jest zapytaniem, wywołanie tego operatora wymusi natychmiastowe wykonanie. Wyliczanie sekwencji źródłowej może również powodować zgłaszanie wyjątków.
Schemat tabeli docelowej jest oparty na schemacie pierwszego DataRow wiersza w sekwencji źródłowej. Metadane tabeli są wyodrębniane z DataRow metadanych i wartości tabeli z wartości kolumny .DataRow W przypadku typowanych DataTabletypów typy nie są zachowywane. Dane i schemat są przesyłane, ale wynikowe wiersze tabeli wyjściowej nie będą typu DataRow . Właściwości RowState i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwróconego elementu DataTable.
Gdy w źródle DataRowznajduje się odwołanie o wartości null lub typ dopuszczalny wartości null, ta metoda zastępuje wartość w miejscu docelowym DataTable wartością Value.
Wygenerowana tabela zwrócona przez metodę ma domyślną nazwę tabeli. Jeśli chcesz nazwać element , dołączyć ją do obiektu lub wykonać inną konkretną DataSetDataTable operację, musisz to zrobić po utworzeniu DataTablei zwróceniu tabeli.
Jeśli podczas kopiowania wiersza danych do tabeli docelowej zostanie zgłoszony wyjątek, taki jak wyjątek ograniczenia, wywoływany errorHandler
jest delegat. Element A FillErrorEventArgs jest przekazywany do delegata errorHandler
z następującymi wartościami:
Właściwość Values jest ustawiona na kopię danych źródłowych.
Właściwość DataTable jest ustawiona na wartość docelową DataTable.
Właściwość jest ustawiona Errors na wyjątek przechwycony.
Właściwość Continue jest odczytywana po powrocie wywołania delegata. Continue Jeśli właściwość ma true
wartość , sekwencja źródłowa nadal jest wyliczana i ładowana do tabeli danych. Continue Jeśli właściwość ma false
wartość , oryginalny wyjątek jest zgłaszany z CopyToDataTable metody .
Aby uzyskać więcej informacji, zobacz Creating a DataTable From a Query (Tworzenie tabeli danych na podstawie zapytania).
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Już wkrótce: w ciągu 2024 r. będziemy stopniowo usuwać problemy z usługą GitHub jako mechanizm opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla