所以我试图将一些行添加到DataTable
但是由于某种原因它似乎覆盖了前一行。我该如何防止这种情况。
到目前为止我所拥有的是这段代码:
DataTable table = new DataTable();
foreach (CallData data in p.ValueArray)
{
DataRow row = table.NewRow();
foreach (CallParm parm in data.Parm)
{
if (!table.Columns.Contains(parm.Name))
{
table.Columns.Add(parm.Name, typeof(string));
}
row[parm.Name] = parm.Value;
}
table.Rows.Add(row);
}
数据示例:
{
ValueArray: [
{
Parm: [
{
Name: "ID",
Value: 1
},
{
Name: "ID",
Value: 2
},
{
Name: "ID",
Value: 4
}
]
}
]
}
数据结果
"ID": 4
想要的结果
"ID": 1
"ID": 2
"ID": 4
我已经检查过它应该在循环中运行,没问题。当我们添加行时问题似乎发生了
答案 0 :(得分:1)
您需要添加Param中的所有值,而不仅仅是最后一个。你可以试试这个
DataTable table = new DataTable();
foreach (CallData data in p.ValueArray)
{
DataRow row = table.NewRow();
foreach (CallParm parm in data.Parm)
{
if (!table.Columns.Contains(parm.Name))
{
table.Columns.Add(parm.Name, typeof(string));
}
row[parm.Name] = parm.Value;
//now you add all items in this loop not only last element.
table.Rows.Add(row);
}
}