我正在将行和列动态添加到数据表中。行添加到我可以看到的范围内,但是只要我运行代码,就不会出现任何内容。就像在 foreach 循环完成后刷新表格一样?菜鸟问题。对不起。 summaryTable.Columns.Add("StationName", typeof(string)); summaryTable.Columns.Add("DepartmentCode", typeof(string)); var row = summaryTable.NewRow(); foreach (var item in issuesByClass) { row.SetField("StationName", item.StationName); row.SetField("DepartmentCode", item.DepartmentCode); foreach (var itemClass in item.Lookup) { if (!itemClassLookup.ContainsKey(itemClass.Key)) continue; var itemClassValue = itemClassLookup[itemClass.Key]; // Ensure column hasn't been added before if (!summaryTable.Columns.Contains(itemClassValue)) { summaryTable.Columns.Add(itemClassValue, typeof(decimal)); } row.SetField(itemClassValue, itemClass.Sum()); } if (!summaryTable.Columns.Contains("GrandTotal")) { summaryTable.Columns.Add("GrandTotal", typeof(decimal)); } row.SetField("GrandTotal", item.GrandTotal); } return summaryTable;小窗口窗体应用程序示例:public Form1() { this.InitializeComponent(); this.Test(); } public void Test() { var dt = new DataTable(); var subs = new[] { "Sub 1", "Sub 2", "Sub 3" }; var row = dt.NewRow(); foreach (var sub in subs) { if (!dt.Columns.Contains("Subs")) { dt.Columns.Add("Subs"); } row.SetField("Subs", sub); } dt.Columns.Add("Test"); row.SetField("Test", 1M); this.dataGridView1.DataSource = dt; }
1 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
NewRow() 不添加行。您需要在循环底部通过.Rows.Add(row). 您可能还应该创建NewRow()每次迭代。
foreach (var item in issuesByClass)
{
var row = summaryTable.NewRow();
// ...
summaryTable.Rows.Add(row);
}
- 1 回答
- 0 关注
- 134 浏览
添加回答
举报
0/150
提交
取消