2011-04-23 109 views
0

我有一個問題,我必須將數據從DataTable複製到另一個,都有不同的結構,這就是爲什麼我不能只調用rowImport方法。適配器模式

在我以前的文章中,我問過什麼是優化的方式來完成這項工作,我被建議我應該看看適配器模式?

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); 

完全問題是描述以下鏈接:

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

問:我怎樣才能使用適配器模式解決這個問題呢?

回答

3

我不認爲適配器模式可以在這裏以任何方式幫助你。我的猜測是,你還沒有決定將DataTable作爲你自己的數據結構,但其他一些情況,比如你的應用程序中的其他組件(UI?)迫使你使用它。這意味着這些組件僅調用DataTable接口的「對話」。 適配器模式是關於消費者(客戶端)和源(適配器)之間的中間接口。中間接口稱爲適配器。 所以堅持最簡單的解決方案。從你的例子我有感覺,你的映射是簡單的1:1行「轉換」,並沒有太大的意義,在這裏介紹任何硬核模式:)

+0

這就是我所做的,但我不確定 – Gainster 2011-04-24 01:52:35

0

怎麼樣合併?這將「將指定的System.Data.DataTable與當前的System.Data.DataTable合併。」