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 복사본이 들어 있는 DataRow 개체를 지정 된 입력 IEnumerable<T> 개체는 제네릭 매개 변수 TDataRow.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 지정 된 개체 DataTable, 지정 된 입력 IEnumerable<T> 개체는 제네릭 매개 변수 TDataRow합니다.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 지정 된 개체 DataTable, 지정 된 입력 IEnumerable<T> 개체는 제네릭 매개 변수 TDataRow합니다.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 복사본이 들어 있는 DataRow 개체를 지정 된 입력 IEnumerable<T> 개체는 제네릭 매개 변수 TDataRow.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.

반환

A DataTable 형식으로 입력된 시퀀스를 포함 하는 DataRow 개체입니다.A 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.

A DataRow 소스 시퀀스에 상태의 Deleted합니다.A DataRow in the source sequence has a state of Deleted.

소스 시퀀스를 포함 하지 DataRow 개체입니다.The source sequence does not contain any DataRow objects.

A DataRow 시퀀스는 소스의 null합니다.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 형식일 수만 있습니다 DataRow 에서 파생 된 형식 또는 DataRow합니다.The parameter T of the input parameter source can only be of type DataRow or a type derived from DataRow.

입력된 시퀀스 될 수 있습니다 IEnumerable<T> 를 통해 원본, 쿼리 또는 쿼리 뿐 아니라는 DataTable합니다.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. 소스 시퀀스를 열거 하는 경우에 예외가 throw 될 수도 있습니다.Enumerating the source sequence can also cause exceptions to be thrown.

대상 테이블의 스키마는 스키마를 기반으로 첫 번째 DataRow 소스 시퀀스의 행입니다.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. 테이블 메타 데이터에서 추출 되는 DataRow 메타 데이터 및 테이블의 열 값에서 값을 DataRow입니다.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. 형식화 된 DataTable, 형식은 유지 되지 않습니다.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. 합니다 RowState 하 고 RowError 속성은 원본에서 복사 하는 동안 유지 되지 않습니다 DataRow 반환 된 DataTable합니다.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

경우는 null 참조 또는 nullable 형식과 값 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. 이름을 지정 하려는 경우는 DataTable에 연결을 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 지정 된 개체 DataTable, 지정 된 입력 IEnumerable<T> 개체는 제네릭 매개 변수 TDataRow합니다.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

대상 DataTable입니다.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

A 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.

A DataRow 소스 시퀀스에 상태의 Deleted합니다.A DataRow in the source sequence has a state of Deleted.

소스 시퀀스를 포함 하지 DataRow 개체입니다.The source sequence does not contain any DataRow objects.

A DataRow 시퀀스는 소스의 null합니다.A DataRow in the source sequence is null.

설명

매개 변수 T 입력된 매개 변수의 source 형식일 수만 있습니다 DataRow에서 파생 된 형식 또는 DataRow합니다.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

입력된 시퀀스 될 수 있습니다 IEnumerable<T> 소스 뿐 아니라 쿼리를 통해를 DataTable입니다.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. 소스 시퀀스를 열거 하는 경우에 예외가 throw 될 수도 있습니다.Enumerating the source sequence can also cause exceptions to be thrown.

대상 테이블의 스키마는 스키마를 기반으로 첫 번째 DataRow 소스 시퀀스의 행입니다.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. 테이블 메타 데이터에서 추출 되는 DataRow 메타 데이터 및 테이블의 열 값에서 값을 DataRow입니다.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. 형식화 된 DataTable, 형식은 유지 되지 않습니다.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. 합니다 RowState 하 고 RowError 속성은 원본에서 복사 하는 동안 유지 되지 않습니다 DataRow 반환 된 DataTable합니다.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

경우는 null 참조 또는 nullable 형식과 값 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. 이름을 지정 하려는 경우는 DataTable에 연결을 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 지정 된 개체 DataTable, 지정 된 입력 IEnumerable<T> 개체는 제네릭 매개 변수 TDataRow합니다.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

대상 DataTable입니다.The destination DataTable.

options
LoadOption LoadOption LoadOption LoadOption

A 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.

A DataRow 소스 시퀀스에 상태의 Deleted합니다.A DataRow in the source sequence has a state of Deleted.

또는-or- 소스 시퀀스를 포함 하지 DataRow 개체입니다.The source sequence does not contain any DataRow objects.

또는-or- A DataRow 시퀀스는 소스의 null합니다.A DataRow in the source sequence is null.

설명

매개 변수 T 입력된 매개 변수의 source 형식일 수만 있습니다 DataRow에서 파생 된 형식 또는 DataRow합니다.The parameter T of the input parameter source can only be of type DataRow, or a type derived from DataRow.

입력된 시퀀스 될 수 있습니다 IEnumerable<T> 소스 뿐 아니라 쿼리를 통해를 DataTable입니다.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. 소스 시퀀스를 열거 하는 경우에 예외가 throw 될 수도 있습니다.Enumerating the source sequence can also cause exceptions to be thrown.

대상 테이블의 스키마는 스키마를 기반으로 첫 번째 DataRow 소스 시퀀스의 행입니다.The schema of the destination table is based on the schema of the first DataRow row in the source sequence. 테이블 메타 데이터에서 추출 되는 DataRow 메타 데이터 및 테이블의 열 값에서 값을 DataRow입니다.The table metadata is extracted from the DataRow metadata and the table values from the column values of the DataRow. 형식화 된 DataTable, 형식은 유지 되지 않습니다.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. 합니다 RowState 하 고 RowError 속성은 원본에서 복사 하는 동안 유지 되지 않습니다 DataRow 반환 된 DataTable합니다.The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

경우는 null 참조 또는 nullable 형식과 값 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. 이름을 지정 하려는 경우는 DataTable에 연결을 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.

제약 조건 예외를 같은 대상 테이블에 데이터 행을 복사 하는 동안 예외가 throw 되 면는 errorHandler 대리자가 호출 됩니다.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. A FillErrorEventArgs 에 전달 되는 errorHandler 다음 값을 사용 하 여 대리자:A FillErrorEventArgs is passed to the errorHandler delegate with the following values:

  • Values 원본 데이터의 복사본을 설정 합니다.The Values property is set to a copy of the source data.

  • 합니다 DataTable 대상 속성이 DataTable합니다.The DataTable property is set to the target DataTable.

  • Errors 예외가 속성입니다.The Errors property is set to the caught exception.

Continue 대리자 호출이 반환 된 후 속성이 읽기입니다.The Continue property is read after the delegate call returns. 경우는 Continue 속성은 true를 열거 하 고 데이터 테이블에 로드 하려면 소스 시퀀스를 계속 합니다.If the Continue property is true, the source sequence continues to be enumerated and loaded into the data table. 경우는 Continue 속성은 false에서 원래 예외가 throw 되는 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.

적용 대상