1

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

当记录添加到数据集/表时,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 来调用主线程,所以它不能正常工作。

4

1 回答 1

0

首先要做的是检查更新和插入语句是否在 tableadapter 的命令文本中。如果数据集,请单击设计视图中的 tableadapter 并查看属性。在属性中,您将看到左侧带有 + 的更新和插入部分。展开它以查看命令文本。如果为空,则回到表适配器的右键,选择配置。然后查看查询设计器并确保检查了要更新的表中的所有内容。然后完成向导并返回并确保向导创建了插入和更新语句。 我发现有时一个文本框会接受更新,而其他文本框不会。我通过删除文本框并添加一个我将重新绑定的新文本框来解决此问题。
在此处输入图像描述

在此处输入图像描述


于 2015-08-02T17:33:15.460 回答