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 element 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 , podanego obiektu wejściowego IEnumerable<T> , w którym parametr T ogólny to DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Kopiuje DataRow obiekty do określonego DataTableobiektu , podanego obiektu wejściowego IEnumerable<T> , w którym parametr T ogólny to DataRow.

CopyToDataTable<T>(IEnumerable<T>)

Zwraca element 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

DataTable

Element DataTable zawierający sekwencję wejściową DataRow jako typ 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 wysyła zapytanie do tabeli SalesOrderHeader pod kątem zamówień po 8 sierpnia 2001 r. i używa CopyToDataTable metody do utworzenia na DataTable 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 parametru T source wejściowego może być typu lub typu DataRow pochodzącego z DataRowklasy .

Sekwencja wejściowa może być dowolnym IEnumerable<T> źródłem, a 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ą DataRow typu. Właściwości RowState i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwróconego DataTableelementu .

Gdy w źródle DataRowznajduje się odwołanie o wartości null lub typ null o 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 nadać nazwę , dołączyć ją do obiektu lub wykonać inną DataTable konkretną DataSetoperację, musisz to zrobić po utworzeniu DataTablei zwrócenia tabeli.

Aby uzyskać więcej informacji, zobacz Tworzenie tabeli danych na podstawie zapytania.

Dotyczy

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Kopiuje DataRow obiekty do określonego DataTableobiektu , podanego obiektu wejściowego 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 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 miejsca 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 parametru T source wejściowego może być DataRowtypu lub 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ą DataRow typu. Właściwości RowState i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwróconego DataTableelementu .

Gdy w źródle DataRowznajduje się odwołanie o wartości null lub typ null o 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 nadać nazwę , dołączyć ją do obiektu lub wykonać inną DataTable konkretną DataSetoperację, musisz to zrobić po utworzeniu DataTablei zwrócenia tabeli.

Aby uzyskać więcej informacji, zobacz Tworzenie tabeli danych na podstawie zapytania.

Dotyczy

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Kopiuje DataRow obiekty do określonego DataTableobiektu , podanego obiektu wejściowego 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 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

FillErrorEventHandler Delegat 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 parametru T source wejściowego może być DataRowtypu lub 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ą DataRow typu. Właściwości RowState i RowError nie są zachowywane podczas kopiowania ze źródła DataRow do zwróconego DataTableelementu .

Gdy w źródle DataRowznajduje się odwołanie o wartości null lub typ null o 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 nadać nazwę , dołączyć ją do obiektu lub wykonać inną DataTable konkretną DataSetoperację, musisz to zrobić po utworzeniu DataTablei zwrócenia tabeli.

Jeśli podczas kopiowania wiersza danych do tabeli docelowej jest zgłaszany wyjątek, taki jak wyjątek ograniczenia, errorHandler delegat jest wywoływany. 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