为了账号安全,请及时绑定邮箱和手机立即绑定

为什么一旦我的 foreach 循环关闭,我添加的数据表行就会从表中消失?

为什么一旦我的 foreach 循环关闭,我添加的数据表行就会从表中消失?

C#
梦里花落0921 2021-06-03 14:12:47
我正在将行和列动态添加到数据表中。行添加到我可以看到的范围内,但是只要我运行代码,就不会出现任何内容。就像在 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);

    }


查看完整回答
反对 回复 2021-06-05
  • 1 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信