vb.net - DataTable.GetChanges() 未按预期工作
问题描述
vb.Net 4.6.1 - Windows 窗体应用程序
我正在尝试对表单上的数据表进行一些更改,但遇到了一些问题。我已经获得了在测试表单上正常工作的功能,但我无法在我的大表单上找出问题所在。
假设我有一个带有组合框的 Windows 窗体,该组合框显示 ID 列表和一个包含 Id 详细信息的文本框。detail.text 属性绑定到数据适配器。我的问题是,当我更改文本框中的文本然后检查 getchanges 时,我看不到任何更改。
我在表单上放了一个按钮来按需检查数据表值,它们正在发生变化,但由于某种原因没有检测到变化。
- 加载表单,在组合框中选择一个 Id,然后将详细信息加载到文本框中。
按下按钮,查看原始值:
MessageBox.Show(DsSIngleJob.apGetSingleJob.Item(0).detail)
MessageBox.Show(DsSIngleJob.apGetSingleJob.Rows(0).Item("detail"))更改文本框中的文本。
- 按下按钮,消息框会显示新值。
测试更改,但没有找到:
ApGetSingleJobBindingSource.EndEdit()
将 JobChanges 调暗为 DataTable = New DataTable
JobChanges = Me.DsSIngleJob.apGetSingleJob.GetChanges
MessageBox.Show(JobChanges.Rows.Count.ToString)
如果我没有更改表单上的文本,而是在 EndEdit 之前将其直接写入数据表,则将获取更改:
DsSIngleJob.apGetSingleJob.Rows(0).Item("detail") = "NewValue"
因为我让它在一个测试表单上工作,所以主表单或相关的数据适配器一定有问题,但我整天都在搞这个,我无法让它工作。如果有人有值得检查的东西,那就太好了。在手动更改文本框后,我检查了表单是否有任何应用更改或加载,但我没有找到任何东西。
解决方案
推荐阅读
- javascript - javascript 查询选择器和 const 问题
- c# - 具有空值的 C# IQueryable LINQ Group By
- javascript - 如何使用JS显示保存在文件夹中的所有图像?
- oracle-apex - 无法使用 ORACLE APEX 删除交互式报表中的行
- python - python中字符串的title()方法没有给出正确的输出
- awk - 有没有一种简单的方法可以从 sed/awk 中保存变量?
- docker - Docker Trust - 使用自己的密钥而不是自动生成的?
- many-to-many - 方法 Illuminate\Database\Eloquent\Collection::detach 不存在。(我该如何解决?)
- azure - 是否有可能使用 Azure Devops REST API 自动创建整个 Azure 管道?
- python - Pandas Dataframe 在函数内分组