0

我创建了一个以数据集为数据源的 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
4

1 回答 1

0

好的,首先,您应该使用绑定源。这就是使您的 DataGridView 和 DataTable 合二为一的原因。

首先要做的是:-

BindingSource bs = new BindingSource();
bs.DataSource = ds.tables[0];

现在您需要为您的 DatagridView 设置数据源,这将是您的 BindingSource bs:-

DatagridView1.Datasource = bs;

现在,您在 DatagridView 中所做的任何更改都将自动反映在您的 DataSet 表中。这也意味着在 DataTable 中所做的任何更改都会自动反映在您的 GridView 中。

于 2012-07-20T15:48:05.860 回答