DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable DataTableExtensions.CopyToDataTable Method

定義

指定した入力 DataTable オブジェクトに応じて、DataRow オブジェクトのコピーを格納する IEnumerable<T> を返します。Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object.

オーバーロード

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

指定した入力 DataTable オブジェクトに応じて (ジェネリック パラメーター TDataRow)、IEnumerable<T> オブジェクトのコピーを格納する DataRow を返します。Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

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

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

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

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

指定した入力 DataTable オブジェクトに応じて (ジェネリック パラメーター TDataRow)、IEnumerable<T> オブジェクトのコピーを格納する DataRow を返します。Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is 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)。The type of objects in the source sequence, typically DataRow.

パラメーター

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

ソース IEnumerable<T> シーケンス。The source IEnumerable<T> sequence.

戻り値

DataTable オブジェクト型の入力シーケンスを格納する DataRowA DataTable that contains the input sequence as the type of DataRow objects.

例外

ソース IEnumerable<T> シーケンスが null で、新しいテーブルは作成できません。The source IEnumerable<T> sequence is null and a new table cannot be created.

ソース シーケンス内の DataRowDeleted の状態です。A DataRow in the source sequence has a state of Deleted.

ソース シーケンスに DataRow オブジェクトは格納されていません。The source sequence does not contain any DataRow objects.

ソース シーケンス内の DataRownull です。A DataRow in the source sequence is null.

次の例では、2001年8月8日より後の SalesOrderHeader テーブルに対してクエリを実行し、CopyToDataTable メソッドを使用して、そのクエリから DataTable を作成します。The following example queries the SalesOrderHeader table for orders after August 8, 2001, and uses the CopyToDataTable method to create a DataTable from that query. 次に、DataTableBindingSource にバインドされます。これは DataGridView のプロキシとして機能します。The DataTable is then bound to a BindingSource, which acts as proxy for a 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 source のパラメーターには、@no__t 型または @no__t から派生した型のみを指定できます。The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

入力シーケンスは、クエリだけでなく、DataTable に対するクエリでも、任意の IEnumerable<T> ソースにすることができます。The input sequence can be any IEnumerable<T> source, not only a query or a query over a DataTable. ソースシーケンスがクエリの場合、この演算子を呼び出すと即時実行が強制されることに注意してください。Note that if the source sequence is a query, calling this operator will force immediate execution. ソースシーケンスを列挙すると、例外がスローされる場合もあります。Enumerating the source sequence can also cause exceptions to be thrown.

コピー先テーブルのスキーマは、ソースシーケンスの最初の @no__t 0 行のスキーマに基づいています。The schema of the destination table is based on the schema of the first DataRow row in the source sequence. テーブルのメタデータは @no__t 0 のメタデータから抽出され、テーブルの値は DataRow の列の値から抽出されます。The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. 型指定された @no__t 0 の場合、型は保持されません。For a typed DataTable, types are not preserved. データとスキーマは転送されますが、出力テーブルの結果の行は、型指定された DataRow 型ではありません。The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. @No__t-0 および RowError プロパティは、ソース DataRow から返された DataTable へのコピー中に保持されません。The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Null 値を持つnull参照または null 許容型がソース DataRow で見つかった場合、このメソッドは、変換先の DataTable の値を Value に置き換えます。When a null reference or nullable type with a value of null is found in a source DataRow, this method replaces the value in the destination DataTable with a value of Value.

メソッドによって返される生成されたテーブルには、既定のテーブル名が付いています。The generated table returned by the method has the default table name. @No__t-0 に名前を付けたり DataSet にアタッチしたり、その他の DataTable 固有の操作を実行したりする場合は、テーブルを作成して返す必要があります。If you want to name the DataTable, attach it to a DataSet, or perform any other DataTable specific operation, you must do so after the table is created and returned.

詳細については、「クエリからの DataTable の作成」を参照してください。For more information, see Creating a DataTable From a Query.

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

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is 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)。The type of objects in the source sequence, typically DataRow.

パラメーター

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

ソース IEnumerable<T> シーケンス。The source IEnumerable<T> sequence.

table
DataTable DataTable DataTable DataTable

コピー先 DataTableThe destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

LoadOption 読み込みオプションを指定する DataTable 列挙体。A LoadOption enumeration that specifies the DataTable load options.

例外

コピーされた DataRow オブジェクトが、転送先の DataTable のスキーマに適合しません。The copied DataRow objects do not fit the schema of the destination DataTable.

転送元の IEnumerable<T> シーケンスが null、または転送先の DataTablenull です。The source IEnumerable<T> sequence is null or the destination DataTable is null.

ソース シーケンス内の DataRowDeleted の状態です。A DataRow in the source sequence has a state of Deleted.

ソース シーケンスに DataRow オブジェクトは格納されていません。The source sequence does not contain any DataRow objects.

ソース シーケンス内の DataRownull です。A DataRow in the source sequence is null.

注釈

入力パラメーターの T source のパラメーターには、@no__t 型、または @no__t から派生した型のみを指定できます。The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

入力シーケンスは、DataTable に対するクエリだけでなく、任意の IEnumerable<T> ソースにすることができます。The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. ソースシーケンスがクエリの場合、この演算子を呼び出すと即時実行が強制されることに注意してください。Note that if the source sequence is a query, calling this operator will force immediate execution. ソースシーケンスを列挙すると、例外がスローされる場合もあります。Enumerating the source sequence can also cause exceptions to be thrown.

コピー先テーブルのスキーマは、ソースシーケンスの最初の @no__t 0 行のスキーマに基づいています。The schema of the destination table is based on the schema of the first DataRow row in the source sequence. テーブルのメタデータは @no__t 0 のメタデータから抽出され、テーブルの値は DataRow の列の値から抽出されます。The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. 型指定された @no__t 0 の場合、型は保持されません。For a typed DataTable, types are not preserved. データとスキーマは転送されますが、出力テーブルの結果の行は、型指定された DataRow 型ではありません。The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. @No__t-0 および RowError プロパティは、ソース DataRow から返された DataTable へのコピー中に保持されません。The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Null 値を持つnull参照または null 許容型がソース DataRow で見つかった場合、このメソッドは、変換先の DataTable の値を Value に置き換えます。When a null reference or nullable type with a value of null is found in a source DataRow, this method replaces the value in the destination DataTable with a value of Value.

メソッドによって返される生成されたテーブルには、既定のテーブル名が付いています。The generated table returned by the method has the default table name. @No__t-0 に名前を付けたり DataSet にアタッチしたり、その他の DataTable 固有の操作を実行したりする場合は、テーブルを作成して返す必要があります。If you want to name the DataTable, attach it to a DataSet, or perform any other DataTable specific operation, you must do so after the table is created and returned.

詳細については、「クエリからの DataTable の作成」を参照してください。For more information, see Creating a DataTable From a Query.

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

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is 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;
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)。The type of objects in the source sequence, typically DataRow.

パラメーター

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

ソース IEnumerable<T> シーケンス。The source IEnumerable<T> sequence.

table
DataTable DataTable DataTable DataTable

コピー先 DataTableThe destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

LoadOption 読み込みオプションを指定する DataTable 列挙体。A LoadOption enumeration that specifies the DataTable load options.

errorHandler
FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler FillErrorEventHandler

エラーを処理するメソッドを表す FillErrorEventHandler デリゲート。A FillErrorEventHandler delegate that represents the method that will handle an error.

例外

コピーされた DataRow オブジェクトが、転送先の DataTable のスキーマに適合しません。The copied DataRow objects do not fit the schema of the destination DataTable.

転送元の IEnumerable<T> シーケンスが null、または転送先の DataTablenull です。The source IEnumerable<T> sequence is null or the destination DataTable is null.

ソース シーケンス内の DataRowDeleted の状態です。A DataRow in the source sequence has a state of Deleted.

- または --or- ソース シーケンスに DataRow オブジェクトは格納されていません。The source sequence does not contain any DataRow objects.

- または --or- ソース シーケンス内の DataRownull です。A DataRow in the source sequence is null.

注釈

入力パラメーターの T source のパラメーターには、@no__t 型、または @no__t から派生した型のみを指定できます。The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

入力シーケンスは、DataTable に対するクエリだけでなく、任意の IEnumerable<T> ソースにすることができます。The input sequence can be any IEnumerable<T> source, not only a query over a DataTable. ソースシーケンスがクエリの場合、この演算子を呼び出すと即時実行が強制されることに注意してください。Note that if the source sequence is a query, calling this operator will force immediate execution. ソースシーケンスを列挙すると、例外がスローされる場合もあります。Enumerating the source sequence can also cause exceptions to be thrown.

コピー先テーブルのスキーマは、ソースシーケンスの最初の @no__t 0 行のスキーマに基づいています。The schema of the destination table is based on the schema of the first DataRow row in the source sequence. テーブルのメタデータは @no__t 0 のメタデータから抽出され、テーブルの値は DataRow の列の値から抽出されます。The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. 型指定された @no__t 0 の場合、型は保持されません。For a typed DataTable, types are not preserved. データとスキーマは転送されますが、出力テーブルの結果の行は、型指定された DataRow 型ではありません。The data and schema are transferred, but the resulting rows of the output table will not be of the typed DataRow type. @No__t-0 および RowError プロパティは、ソース DataRow から返された DataTable へのコピー中に保持されません。The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

Null 値を持つnull参照または null 許容型がソース DataRow で見つかった場合、このメソッドは、変換先の DataTable の値を Value に置き換えます。When a null reference or nullable type with a value of null is found in a source DataRow, this method replaces the value in the destination DataTable with a value of Value.

メソッドによって返される生成されたテーブルには、既定のテーブル名が付いています。The generated table returned by the method has the default table name. @No__t-0 に名前を付けたり DataSet にアタッチしたり、その他の DataTable 固有の操作を実行したりする場合は、テーブルを作成して返す必要があります。If you want to name the DataTable, attach it to a DataSet, or perform any other DataTable specific operation, you must do so after the table is created and returned.

制約例外など、データ行のコピー中に例外がスローされた場合は、@no__t 0 デリゲートが呼び出されます。If an exception is thrown during the copy of a data row into the target table, such as a constraint exception, the errorHandler delegate is called. @No__t-0 は、次の値を持つ errorHandler デリゲートに渡されます。A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • @No__t-0 プロパティは、ソースデータのコピーに設定されます。The Values property is set to a copy of the source data.

  • @No__t-0 プロパティは、ターゲット DataTable に設定されます。The DataTable property is set to the target DataTable.

  • @No__t-0 プロパティは、キャッチされた例外に設定されます。The Errors property is set to the caught exception.

@No__t-0 プロパティは、デリゲート呼び出しから制御が戻った後に読み取られます。The Continue property is read after the delegate call returns. @No__t-0 プロパティが-1 @no__t の場合、ソースシーケンスは引き続き列挙され、データテーブルに読み込まれます。If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. @No__t-0 プロパティが-1 @no__t の場合、CopyToDataTable メソッドから元の例外がスローされます。If the Continue property is false, the original exception is thrown from the CopyToDataTable method.

詳細については、「クエリからの DataTable の作成」を参照してください。For more information, see Creating a DataTable From a Query.

適用対象