我尝试制作响应式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?
答案 0 :(得分:1)
在刷新方法中尝试以下代码段
prekes.Clear();//dataset.clear
dataAdaoter.Fill(prekes);//DataAdapter.Fill