0
我有一个小问题,我无法找到解决方案。DataTable上的RejectChanges()删除DataGridView中的所有行
我有一个自定义dataGridView的窗体。 这个datagridView需要一个数据源。 DataSource是我自己创建的Datatable(稍后将由数据库数据表替换)。到目前为止,一切都显示得很好。
现在我在我的表单中有2个按钮。 一个保存,一个Cancell。 我想要做的是当我点击cancell时,我想对我的datagridView所做的更改返回到其原始dataTable。
到目前为止,当我点击按钮时,它只是删除所有行(列保留)。
这里是什么,我在我的代码做一个为例:
public partial class UserControlMyDataGrid : UserControl
{
private DataTable originalDataTable;
public UserControlRechercheDataGrid()
{
InitializeComponent();
originalDataTable = new DataTable();
originalDataTable.Columns.Add("col A", typeof(int));
originalDataTable.Columns.Add("col B");
originalDataTable.Columns.Add("col C", typeof(bool));
originalDataTable.Columns.Add("col D");
for (int j = 0; j < 5; j++)
{
originalDataTable.Rows.Add(j, "c" + j.ToString(), true, "test");
}
dataGridView1.DataSource = originalDataTable;
}
private void buttonCancelModifications_Click(object sender, EventArgs e)
{
originalDataTable.RejectChanges();
dataGridView1.Refresh();
}
}
人有,为什么它的行为这样的任何想法?
非常感谢。我读过MSDN文档,并检查了rowstate,但为了dattable.RejectChanges()它只讨论了修改和删除状态,而不是添加状态。无论如何都是 。再次感谢。这澄清了很多。 小问题。我只需要做同样的事情,如果我想保存它。只需接受更改,然后按照我认为合适的方式导出数据表? – lolplayer101