我创建了一个datagridview,其数据集作为其数据源。在某个文本框的keydown事件中,我向数据集添加了一个新行,并且它直接反映在datagridview中。但是,如果我偶然点击datagridview中的最后一行“左边有一颗星”,无论我添加多少行数据集都不会被反映出来。如果我返回数据集行的计数,我可以看到它们被添加,只是它们不再反映在datagridview中。我尝试了ds.acceptchanges和datagridview.refresh但没有帮助。任何解决方案?
以下是我使用的代码:
if ds.tables(0).rows(datagridview.rows.count-1).item("Amount")<>0 then
ds.tables(0).rows.add(ds.tables(0).newrow)
end if
答案 0 :(得分:0)
好的,首先,您应该使用绑定源。这就是使你的DataGridView&amp; DataTable为一个。
首先要做的是: -
BindingSource bs = new BindingSource();
bs.DataSource = ds.tables[0];
现在您需要为DatagridView设置数据源,这将是您的BindingSource bs: -
DatagridView1.Datasource = bs;
现在,您的DatagridView中所做的任何更改都将自动反映在您的DataSet表中。这也意味着DataTable中所做的任何更改都将自动反映在GridView中。