2011-04-23 7 views
0

DataTable에서 다른 데이터로 데이터를 복사해야하는 문제가 있습니다. 둘 다 다른 구조를 가지고 있기 때문에 rowImport 메서드를 호출 할 수 없습니다.어댑터 패턴

이전 게시물에서 나는이 작업을 수행하는 데 최적화 된 방법이 무엇인지 물었고 어댑터 패턴을 조사해야한다고 제안 했습니까?

Best way to copy Data from one DataTable to another DataTable with diffrent structure

질문 : 어떻게 어댑터 패턴을 사용하여이 문제를 해결할 수 있습니다

IEnumerable<DataRow> query = from vendInv in 
    VendorInvoiceStagingTable.AsEnumerable()           
where vendInv.Field<string>(VendInvoice.Number) == InvoiceHeader           
select vendInv;  


    Object[] obj = new Object[10];    
var item = query.First();   
    for (int idx = 0; idx < 10; idx++) 
    {    
     obj[idx] = item[idx];  
     }   
    VendorInvoiceTable.Rows.Add(obj); 

전체 문제는 다음 링크를 설명인가?

답변

3

저는 어댑터 패턴이 어떤 식 으로든 당신을 도울 수 있다고 생각하지 않습니다. 내 추측에 따르면, DataTable을 자신의 데이터 구조로 결정하지는 않았지만이를 사용하는 응용 프로그램의 다른 구성 요소 (UI?)와 같은 다른 환경에서 사용하도록 강요했습니다. 즉, 이러한 구성 요소는 DataTable 인터페이스와 "대화"합니다. 어댑터 패턴은 소비자 (클라이언트)와 소스 (어댑티브) 간의 중간 인터페이스입니다. 중간 인터페이스를 어댑터라고합니다. 가능한 가장 간단한 해결책을 찾으십시오. 귀하의 예제에서 나는 매핑이 단순한 1 : 1 행 "변환"이라는 느낌을 가지고 있으며 여기에 어떤 하드 코어 패턴을 소개하는 데 많은 의미가 있습니다 :)

+0

그게 내가 한 일이지만 확실하지 않았습니다. – Gainster

0

병합은 어떻게됩니까? 어느 것이 "지정된 System.Data.DataTable을 현재 System.Data.DataTable과 병합합니다."