我正在尝试让我的绑定导航器"刷新"并在更新记录后向我显示新数据。
我有一个包含 4 个字段(ID、注释、SN、原因)和一个绑定导航器1 的 Winform。
- 我将导航器设置为绑定源。
- 打开连接。
- 设置我的表适配器。
- 设置我的数据集。
- 添加我的表。
- 填满我的桌子适配器。
- 将 bindingsource.datasource 设置为 ds.table(x)
- 将数据绑定添加到文本/组合框
- 紧密连接
所有这些都工作正常。 我从数据库中提取数据。 我可以使用导航器很好地滚动记录。
现在,当我使用 Cause 组合框更新我的一条记录时,它可以通过 UPDATE 语句影响其他记录。 这工作正常,它运行 UPDATE 命令并在数据库中为所有应更新的记录正确设置字段,但是当我使用 BindingNavigator 滚动浏览记录时,新数据不会在其他记录中表示。 在当前的记录中很好。
我已经尝试了刷新绑定导航器等的各种组合。 以下是我尝试过的一些没有运气的事情。
- BindingNavigator1.Refresh() 绑定
- 源1.重置绑定(真)
- Me.UpdateDataSources() 绑定
- 源1.重置绑定(假)
- Me.BindingNavigator1.BindingSource = Me.BindingSource1
- Me.BindingNavigator1.Refresh() 'no go
有什么想法吗?
您需要做的只是简单地重新设置bindingsource
的数据源。 更新后从数据库中重新读取数据,并将这些结果设置为 datasource
。
var dbData = GetMyDbData();
BindingSource1.DataSource = dbData;
然后,当您使用 bindingnavigator
导航记录时,您应该会看到更新的记录中的所有更改以及因此而更新的任何其他记录。