我确信这是微不足道的。但我无法理解为什么我的数据库没有得到更新,当我在其他地方有类似的设置似乎工作正常。
我有一个名为DSEditObject的类型化数据集,在我的表单上有一个名为DsEditObject1的实例。该数据集中有一个名为“对象”的表。
我有一个文本框,其数据绑定文本属性是: ObjectBindingSource - objectName
这个'ObjectBindingSource'的数据源属性为:DsEditObject1,datamember属性为'Object'。
当我加载表单时,我使用在运行时配置的dataadapter填充数据集。 textbox.text属性设置为我期望的数据库中的列数据。
我从保存按钮处理了点击并致电
SqlDataAdapter1.Update(DsEditObject1, "Object")
我已经使用了命令窗口,并在调用update命令之前检查了数据集中的值是否已更改为文本框输入:
UPDATE [Object] SET [objectName] = @objectName WHERE(([objectID] = @Original_objectID))
但由于某种原因,我的数据库没有得到更新,我没有收到任何错误
编辑:
我忘记打电话给.endcurrentEdit()
BindingContext(DsEditObject1, "Object").EndCurrentEdit()
答案 0 :(得分:1)
我忘记打电话给.endcurrentEdit()
BindingContext(DsEditObject1, "Object").EndCurrentEdit()
答案 1 :(得分:0)
可悲的是,你的BindingContext阻止了这些变化。通常,SqlDataAdapter.Update会立即将更新发送到数据库,但看起来您的BindingContext会为您保留所有更新,以便您可以在需要时取消它。
我会从上下文中获取您的DataSet,以便它立即更新。