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 オブジェクト型の入力シーケンスを格納する DataRow

例外

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

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

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

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

次の例では、SalesOrderHeader テーブルで 2001 年 8 月 8 日以降の注文を照会し、 メソッドを 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

注釈

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

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

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

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

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

詳細については、「 クエリから 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 です。

注釈

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

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

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

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

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

詳細については、「 クエリから 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 です。

注釈

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

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

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

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

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

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

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

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

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

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

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

適用対象