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 sourceDataRow またはから派生した型のみを指定でき DataRow ます。

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

コピー先テーブルのスキーマは、ソースシーケンスの最初の行のスキーマに基づいてい DataRow ます。 テーブルのメタデータは DataRow 、メタデータとテーブルの値からの列の値から抽出され DataRow ます。 型を指定した場合 DataTable 、型は保持されません。 データとスキーマは転送されますが、出力テーブルの結果の行は型指定された型ではありません DataRowRowState 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 です。

注釈

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

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

コピー先テーブルのスキーマは、ソースシーケンスの最初の行のスキーマに基づいてい DataRow ます。 テーブルのメタデータは DataRow 、メタデータとテーブルの値からの列の値から抽出され DataRow ます。 型を指定した場合 DataTable 、型は保持されません。 データとスキーマは転送されますが、出力テーブルの結果の行は型指定された型ではありません DataRowRowState 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 です。

注釈

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

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

コピー先テーブルのスキーマは、ソースシーケンスの最初の行のスキーマに基づいてい DataRow ます。 テーブルのメタデータは DataRow 、メタデータとテーブルの値からの列の値から抽出され DataRow ます。 型を指定した場合 DataTable 、型は保持されません。 データとスキーマは転送されますが、出力テーブルの結果の行は型指定された型ではありません DataRowRowState 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 の作成」を参照してください。

適用対象