DataTableExtensions.CopyToDataTable 메서드

정의

지정된 입력 DataTable 개체를 사용하여 DataRow 개체의 복사본이 들어 있는 IEnumerable<T>을 반환합니다.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object.

오버로드

CopyToDataTable<T>(IEnumerable<T>)

제네릭 매개 변수 TDataTable인 지정된 입력 DataRow 개체를 사용하여 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)

제네릭 매개 변수 TDataRow인 지정된 입력 DataTable 개체를 사용하여 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)

제네릭 매개 변수 TDataRow인 지정된 입력 DataTable 개체를 사용하여 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>)

제네릭 매개 변수 TDataTable인 지정된 입력 DataRow 개체를 사용하여 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> 시퀀스입니다.The source IEnumerable<T> sequence.

반환

DataTable

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.

소스 시퀀스의 DataRow 상태가 Deleted인 경우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.

예제

다음 예에서는 SalesOrderHeader 테이블에서 2001 년 8 월 8 일 후의 주문을 쿼리하고 메서드를 사용 하 여 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. DataTable그런 다음에 BindingSource 대 한 프록시 역할을 하는에 바인딩됩니다 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. RowStateRowError 속성은 원본에서 반환 된로 복사 하는 동안 보존 되지 않습니다 DataRow DataTable .The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

값이 nullnull 참조 또는 nullable 형식이 소스에 있으면 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)

제네릭 매개 변수 TDataRow인 지정된 입력 DataTable 개체를 사용하여 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> 시퀀스입니다.The source IEnumerable<T> sequence.

table
DataTable

대상 DataTable입니다.The destination DataTable.

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

소스 시퀀스의 DataRow 상태가 Deleted인 경우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 형식 이거나에서 파생 된 형식만 될 수 있습니다 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. RowStateRowError 속성은 원본에서 반환 된로 복사 하는 동안 보존 되지 않습니다 DataRow DataTable .The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

값이 nullnull 참조 또는 nullable 형식이 소스에 있으면 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)

제네릭 매개 변수 TDataRow인 지정된 입력 DataTable 개체를 사용하여 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;
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> 시퀀스입니다.The source IEnumerable<T> sequence.

table
DataTable

대상 DataTable입니다.The destination DataTable.

options
LoadOption

LoadOption 로드 옵션을 지정하는 DataTable 열거형입니다.A LoadOption enumeration that specifies the DataTable load options.

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

소스 시퀀스의 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- 소스 시퀀스의 DataRownull인 경우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. RowStateRowError 속성은 원본에서 반환 된로 복사 하는 동안 보존 되지 않습니다 DataRow DataTable .The RowState and RowError properties are not preserved during the copy from the source DataRow to the returned DataTable.

값이 nullnull 참조 또는 nullable 형식이 소스에 있으면 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. 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속성이 catch 된 예외로 설정 된 경우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.

적용 대상