我有一个问题,我必须将数据从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
问:如何使用Adapter pattern解决此问题?
发布于 2011-04-24 09:42:24
我不认为Adapter模式在这里能以任何方式帮助你。我的猜测是,您还没有自己决定使用DataTable作为您的数据结构,但是其他一些情况,比如您的应用程序中使用它的其他组件(UI?)强迫你使用它。这意味着这些组件只调用“对话”到DataTable接口。适配器模式是关于消费者(客户端)和源(适配器)之间的中间接口。中间接口称为Adapter。因此,请坚持使用最简单的解决方案。从您的示例中,我感觉您的映射是简单的1:1行“转换”,在这里引入任何核心模式没有多大意义:)
发布于 2011-04-26 05:09:02
那合并呢?这将“将指定的System.Data.DataTable与当前的System.Data.DataTable合并”。
https://stackoverflow.com/questions/5767274
复制相似问题