2011-04-23 82 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合并。”