DataTableExtensions.CopyToDataTable Metoda

Definicja

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 T ogólny to DataRow.

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.

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.

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

table
DataTable

Miejsce docelowe DataTable.

options
LoadOption

Wyliczenie LoadOption określające DataTable opcje ładowania.

Wyjątki

Skopiowane DataRow obiekty nie pasują do schematu obiektu docelowego DataTable.

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

table
DataTable

Miejsce docelowe DataTable.

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

Skopiowane DataRow obiekty nie pasują do schematu obiektu docelowego DataTable.

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 truewartość , sekwencja źródłowa nadal jest wyliczana i ładowana do tabeli danych. Continue Jeśli właściwość ma falsewartość , 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