DataTableExtensions.CopyToDataTable メソッド

定義

指定した入力 DataTable オブジェクトに応じて、DataRow オブジェクトのコピーを格納する IEnumerable<T> を返します。

オーバーロード

CopyToDataTable<T>(IEnumerable<T>)

指定した入力 DataTable オブジェクトに応じて (ジェネリック パラメーター TDataRow)、IEnumerable<T> オブジェクトのコピーを格納する DataRow を返します。

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

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。

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

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。

CopyToDataTable<T>(IEnumerable<T>)

指定した入力 DataTable オブジェクトに応じて (ジェネリック パラメーター TDataRow)、IEnumerable<T> オブジェクトのコピーを格納する 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

型パラメーター

T

ソース シーケンスのオブジェクトの型 (通常は DataRow)。

パラメーター

source
IEnumerable<T>

ソース IEnumerable<T> シーケンス。

戻り値

DataTable

DataTable オブジェクト型の入力シーケンスを格納する DataRow

例外

ソース IEnumerable<T> シーケンスが null で、新しいテーブルは作成できません。

ソース シーケンス内の DataRowDeleted の状態です。

ソース シーケンスに DataRow オブジェクトは格納されていません。

ソース シーケンス内の DataRownull です。

次の例では、2001 年 8 月 8 日以降に SalesOrderHeader テーブルに注文を照会し、このメソッドを CopyToDataTable 使用してそのクエリから注文を DataTable 作成します。 次に、DataTableBindingSource にバインドされます。これは 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

注釈

入力パラメーターのパラメーターTには、型DataRowまたは派生DataRowした型のみを指定sourceできます。

入力シーケンスには、クエリやクエリだけでなく、任意 IEnumerable<T> のソースを指定 DataTableできます。 ソース シーケンスがクエリの場合、この演算子を呼び出すと即時実行が強制されることに注意してください。 ソース シーケンスを列挙すると、例外がスローされる場合もあります。

変換先テーブルのスキーマは、ソース シーケンスの最初 DataRow の行のスキーマに基づいています。 テーブルメタデータはメタデータから DataRow 抽出され、テーブルの値 DataRowは . 型指定された DataTable場合、型は保持されません。 データとスキーマは転送されますが、出力テーブルの結果の行は型指定 DataRow されません。 RowStateソースから返DataTableされたプロパティDataRowへのコピー中、およびRowErrorプロパティは保持されません。

null の値を持つ null 参照または null 許容型がソースDataRowで見つかった場合、このメソッドは変換先DataTableの値を .Value

メソッドによって返される生成されたテーブルには、既定のテーブル名があります。 名前を付DataTableける、アタッチする、またはその他DataTableDataSet特定の操作を実行する場合は、テーブルを作成して返した後で行う必要があります。

詳細については、「 クエリから DataTable を作成する」を参照してください

適用対象

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

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>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)

型パラメーター

T

ソース シーケンスのオブジェクトの型 (通常は DataRow)。

パラメーター

source
IEnumerable<T>

ソース IEnumerable<T> シーケンス。

table
DataTable

コピー先の DataTable

options
LoadOption

LoadOption 読み込みオプションを指定する DataTable 列挙体。

例外

コピーされた DataRow オブジェクトが、転送先の DataTable のスキーマに適合しません。

転送元の IEnumerable<T> シーケンスが null、または転送先の DataTablenull です。

ソース シーケンス内の DataRowDeleted の状態です。

ソース シーケンスに DataRow オブジェクトは格納されていません。

ソース シーケンス内の DataRownull です。

注釈

入力パラメーターのパラメーターTには、型DataRowのみ、または派生DataRowした型を指定sourceできます。

入力シーケンスは、クエリだけでなく、任意 IEnumerable<T> のソースにすることができます DataTable。 ソース シーケンスがクエリの場合、この演算子を呼び出すと即時実行が強制されることに注意してください。 ソース シーケンスを列挙すると、例外がスローされる場合もあります。

変換先テーブルのスキーマは、ソース シーケンスの最初 DataRow の行のスキーマに基づいています。 テーブルメタデータはメタデータから DataRow 抽出され、テーブルの値 DataRowは . 型指定された DataTable場合、型は保持されません。 データとスキーマは転送されますが、出力テーブルの結果の行は型指定 DataRow されません。 RowStateソースから返DataTableされたプロパティDataRowへのコピー中、およびRowErrorプロパティは保持されません。

null の値を持つ null 参照または null 許容型がソースDataRowで見つかった場合、このメソッドは変換先DataTableの値を .Value

メソッドによって返される生成されたテーブルには、既定のテーブル名があります。 名前を付DataTableける、アタッチする、またはその他DataTableDataSet特定の操作を実行する場合は、テーブルを作成して返した後で行う必要があります。

詳細については、「 クエリから DataTable を作成する」を参照してください

適用対象

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

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>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)

型パラメーター

T

ソース シーケンスのオブジェクトの型 (通常は DataRow)。

パラメーター

source
IEnumerable<T>

ソース IEnumerable<T> シーケンス。

table
DataTable

コピー先の DataTable

options
LoadOption

LoadOption 読み込みオプションを指定する DataTable 列挙体。

errorHandler
FillErrorEventHandler

エラーを処理するメソッドを表す FillErrorEventHandler デリゲート。

例外

コピーされた DataRow オブジェクトが、転送先の DataTable のスキーマに適合しません。

転送元の IEnumerable<T> シーケンスが null、または転送先の DataTablenull です。

ソース シーケンス内の DataRowDeleted の状態です。

  • または - ソース シーケンスに DataRow オブジェクトは格納されていません。

  • または - ソース シーケンス内の DataRownull です。

注釈

入力パラメーターのパラメーターTには、型DataRowのみ、または派生DataRowした型を指定sourceできます。

入力シーケンスは、クエリだけでなく、任意 IEnumerable<T> のソースにすることができます DataTable。 ソース シーケンスがクエリの場合、この演算子を呼び出すと即時実行が強制されることに注意してください。 ソース シーケンスを列挙すると、例外がスローされる場合もあります。

変換先テーブルのスキーマは、ソース シーケンスの最初 DataRow の行のスキーマに基づいています。 テーブルメタデータはメタデータから DataRow 抽出され、テーブルの値 DataRowは . 型指定された DataTable場合、型は保持されません。 データとスキーマは転送されますが、出力テーブルの結果の行は型指定 DataRow されません。 RowStateソースから返DataTableされたプロパティDataRowへのコピー中、およびRowErrorプロパティは保持されません。

null の値を持つ null 参照または null 許容型がソースDataRowで見つかった場合、このメソッドは変換先DataTableの値を .Value

メソッドによって返される生成されたテーブルには、既定のテーブル名があります。 名前を付DataTableける、アタッチする、またはその他DataTableDataSet特定の操作を実行する場合は、テーブルを作成して返した後で行う必要があります。

制約例外など、ターゲット テーブルへのデータ行のコピー中に例外がスローされた場合、 errorHandler デリゲートが呼び出されます。 A FillErrorEventArgs は、次の値を errorHandler 持つデリゲートに渡されます。

  • この Values プロパティは、ソース データのコピーに設定されます。

  • この DataTable プロパティはターゲットに設定されます DataTable

  • この Errors プロパティは、キャッチされた例外に設定されます。

このプロパティは Continue 、デリゲート呼び出しが戻った後に読み取られます。 プロパティが指定されている Continue 場合、ソース シーケンスは true引き続き列挙され、データ テーブルに読み込まれます。 プロパティが指定されている Continue 場合、 false元の例外がメソッドから CopyToDataTable スローされます。

詳細については、「 クエリから DataTable を作成する」を参照してください

適用対象