【问题标题】:.net binding a textbox to a dataset. Sql value not updated by calling dataAdapter.update().net 将文本框绑定到数据集。调用 dataAdapter.update() 未更新 Sql 值
【发布时间】:2026-01-04 00:15:02
【问题描述】:

我敢肯定这是微不足道的。但是当我在其他地方有类似的设置似乎工作正常时,我无法弄清楚为什么我的数据库没有得到更新。

我有一个名为 DSEditObject 的类型化数据集,我的表单上有一个名为 DsEditObject1 的实例。该数据集有一个名为“对象”的表。

我有一个文本框,其数据绑定文本属性为: ObjectBindingSource - 对象名称

此“ObjectBindingSource”的数据源属性为:DsEditObject1,数据成员属性为“Object”。

当我加载表单时,我使用运行时配置的数据适配器填充数据集。 textbox.text 属性设置为我期望的数据库中的列数据。

我处理了保存按钮的点击并调用

SqlDataAdapter1.Update(DsEditObject1, "Object")

我已使用命令窗口并检查数据集中的值在调用更新命令之前已更改为文本框输入:

UPDATE [Object] SET [objectName] = @objectName WHERE (([objectID] = @Original_objectID))

但由于某种原因,我的数据库没有更新,我没有收到任何错误

编辑:

我忘记调用 .endcurrentEdit()

BindingContext(DsEditObject1, "Object").EndCurrentEdit()

【问题讨论】:

    标签: c# .net vb.net winforms binding


    【解决方案1】:

    我忘记调用 .endcurrentEdit()

    BindingContext(DsEditObject1, "Object").EndCurrentEdit()
    

    【讨论】:

      【解决方案2】:

      遗憾的是,您的 BindingContext 阻止了更改。通常 SqlDataAdapter.Update 会立即将更新发送到数据库,但看起来您的 BindingContext 为您保存了所有更新,因此您可以在需要时取消它。

      我会将您的 DataSet 从 Context 中取出,以便立即更新。

      【讨论】:

        最近更新 更多