将 DataTable 从平面表解析为标准化表
我有 B2B 集成的需求,我将从数据集中读取平面表并解析为数据表的规范化形式。
我将在数据表中重新获取列 示例数据
Invoice num Amount LineNum Line Amout Ledger
INV1 100 1 50 11101
INV1 100 2 50 25631
行将与不同的发票重复
如何可以清楚地选择到新的数据表中?使用 ADO.NET
我想将数据解析为以下格式
标题表
Invoice num Amount
INV1 100
行表
Invoice num LineNum Line Amout Ledger
INV1 1 50 11101
INV1 2 50 25631
问题:我不知道采用上述格式的最佳方法是什么?我看到使用 linq 、 DataTable 、 Views 的示例?我正在寻找代码片段。
I have a requirement for B2B integration, I will reading flat table from dataset and parse to a normalize form of datatable.
I will have reapting colums in the datatable
Sample Data
Invoice num Amount LineNum Line Amout Ledger
INV1 100 1 50 11101
INV1 100 2 50 25631
rows will repeat with different invoices
How can distinctly select into new datatable ? using ADO.NET
I want to parse the data into following format
Header Table
Invoice num Amount
INV1 100
Line Table
Invoice num LineNum Line Amout Ledger
INV1 1 50 11101
INV1 2 50 25631
QUESTION : I dont know what would be the best way to bring the above format ? I see examples usign linq , DataTable, Views ? I looking for a code snippet.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好的,为了开始解决这个问题,我正在使用 DataTable 和定义如下的数据。更改名称和类型以满足您的需要。
请注意,我使用的是接受
params object[]
数组的.Rows.Add
重载。我传入的值按照它们应填充的列的顺序和类型排列。下面的代码使用相同的方法。我要做的第一件事是为新的标准化格式定义表格。首先,表头。
然后是行项目表。
之后,我将使用 LINQ 根据发票编号对原始销售表进行分组。
之后,只需迭代组并将数据添加到新表即可。
现在您的数据已采用您喜欢的标准化格式。再次更改相关的列名称和数据类型以满足您的需求。
OK, to start the problem, I am working with a
DataTable
and data defined as follows. Change names and types to suit your needs.Notice that I'm using the overload of
.Rows.Add
that accepts aparams object[]
array. The values I'm passing in are in the order and type of the columns they should populate. The code below uses the same approach.First thing I want to do is define the tables for your new normalized format. First, the header table.
And then the line item table.
After this, I'm going to utilize LINQ to group the original sales table based on the invoice number.
After this, it's just a matter of iterating over the groups and adding the data to the new tables.
And now you have your data in the normalized format you prefer. Again, change relevant column names and data types to suit your needs.