C# .net将文本框绑定到数据集。未通过调用dataAdapter.update()更新Sql值

C# .net将文本框绑定到数据集。未通过调用dataAdapter.update()更新Sql值,c#,.net,vb.net,winforms,binding,C#,.net,Vb.net,Winforms,Binding,我相信这是微不足道的。但我不明白为什么我的数据库没有得到更新,而我在其他地方有类似的设置,这些设置似乎工作正常 我有一个名为DSEditObject的类型化数据集,表单上有一个名为DsEditObject1的实例。此数据集中有一个名为“Object”的表 我有一个文本框,其数据绑定文本属性为: ObjectBindingSource-objectName 此“ObjectBindingSource”的datasource属性为:DsEditObject1,datamember属性为“Object

我相信这是微不足道的。但我不明白为什么我的数据库没有得到更新,而我在其他地方有类似的设置,这些设置似乎工作正常

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

我有一个文本框,其数据绑定文本属性为: ObjectBindingSource-objectName

此“ObjectBindingSource”的datasource属性为:DsEditObject1,datamember属性为“Object”

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

我处理了保存按钮的点击和呼叫

SqlDataAdapter1.Update(DsEditObject1, "Object")
我已使用命令窗口,并检查数据集中的值在调用update命令之前是否已更改为文本框输入:

更新[Object]集合[objectName]=@objectName其中(([objectID]=@Original_objectID))

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

编辑:


我忘了打电话给.endcurrentEdit()


我忘了打电话给.endcurrentEdit()


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

我会将您的数据集从上下文中删除,以便它立即更新

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