值更改后的C#刷新数据集

时间:2016-04-03 10:53:43

标签: c# datagridview

我尝试制作响应式DataGridView表,但在更新字段值时遇到了一些困难。 如果我编辑该字段,请将其保留并按下刷新按钮 - 一切正常。 如果我使用其中一个触发器,如CellValueChanged或`CellEndEdit'我收到错误

An unhandled exception of type 'System.InvalidOperationException' occurred in System.Windows.Forms.dll

Additional information: Operation is not valid because it results in a reentrant call to the SetCurrentCellAddressCore function.


private void Sync()
{
SqlCommandBuilder cmdr = new SqlCommandBuilder(prekes);
prekes.Update(d.Tables["Prekes"]);
Refresh();
}

private void Refresh()
{
dataGridView1.AutoGenerateColumns = false;
d = new DataSet();
prekes.Fill(d, "Prekes");
dataGridView1.DataSource = d.Tables[0];
}

dataGridView1.DataSource = d.Tables [0];是我得到错误的地方..

请注意,我只是在点击时才会收到错误,很少有人在第一时间正常工作。我是否应该尝试捕捉和异常或其他什么时候发生并忽略它?或者我应该使用另一个触发器而不是CellEndEdit?

1 个答案:

答案 0 :(得分:1)

在刷新方法中尝试以下代码段

prekes.Clear();//dataset.clear
    dataAdaoter.Fill(prekes);//DataAdapter.Fill