DataTable.GetChanges()不能按预期工作

时间:2019-03-26 21:32:17

标签: vb.net

vb.Net 4.6.1- Windows Forms应用程序

我正在尝试对表单上的数据表进行一些更改,但遇到了一些问题。我已经获得了可以在测试表单上正常工作的功能,但是我无法在大型表单上解决问题。

假设我有一个带有组合框的Windows窗体,该组合框显示ID列表,而一个文本框包含ID的详细信息。 detail.text属性绑定到数据适配器。我的问题是,当我更改文本框中的文本然后检查getchanges时,看不到任何更改。

我在表单上放置了一个按钮,以按需检查数据表值,这些值正在更改,但是由于某些原因未检测到更改。

  1. 加载表单,在组合框中选择一个ID,然后在文本框中加载详细信息。
  2. 按下按钮,查看原始值:

    MessageBox.Show(DsSIngleJob.apGetSingleJob.Item(0).detail)
    MessageBox.Show(DsSIngleJob.apGetSingleJob.Rows(0).Item(“ detail”))

  3. 更改文本框中的文本。

  4. 按下按钮,消息框将显示新值。
  5. 测试更改,但没有找到

    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"

由于我要处理测试表单,所以它必须与主表单或关联的数据适配器有关,但是我整天都在忙这个问题,因此无法正常工作。如果有人有值得检查的东西,那就太好了。手动更改文本框后,我检查了表单是否有任何applychange或加载,但没有找到任何内容。

0 个答案:

没有答案