BindingNavigator不会显示新添加的记录

时间:2015-06-26 13:49:36

标签: c# winforms dataset bindingsource bindingnavigator

我创建了一个WinForm,它从另一个应用程序获取数据并将其保存在数据库中。我使用BindingNavigator(我将数据集表拖到我的表单上并获得了导航器,bindingsource等)来显示和浏览记录。

当记录添加到数据集/表时,BindingNavigator不会立即使用新信息更新自身。就像没有添加任何东西一样。

我必须点击BindingNavigator的next项目,previous项目或类似的东西,这样它会刷新自己并显示正确数量的项目。

有人可以告诉我如何以编程方式告诉BindingNavigator显示更新的值吗?

我尝试过很多东西,但没有任何效果。

修改

我弄清楚出了什么问题。我在与表单不同的线程上运行。 对我有用的代码:

this.tableAdapterManager.PieceTableAdapter.Insert(ints[4], ints[2], ints[6],    ints[8], ints[10], ints[12], ints[14]);

this.tableAdapterManager.UpdateAll(this.slicerTestDBDataSet);
this.pieceBindingNavigator.Invoke(new Action(() => this.pieceTableAdapter.Fill(this.slicerTestDBDataSet.Piece)));

之前我没有使用Invoke来调用主线程,因此它无法正常工作。

1 个答案:

答案 0 :(得分:0)

要做的第一件事是检查update和insert语句是否在tableadapter的命令文本中。
enter image description here
如果数据集在设计视图中单击tableadapter并查看属性。在属性中,您将看到更新并插入左侧带有+的部分。展开它以查看命令文本。
enter image description here
如果它为空,则返回右键单击表适配器并选择configure。然后查看查询设计器并确保检查要更新的表中的所有内容。然后完成向导并返回并确保向导创建了插入和更新语句。

我发现有时一个文本框会接受更新,而其他文本框则不会。我通过删除文本框并添加一个我将重新绑定的新文本框来修复此问题。