前端之家收集整理的这篇文章主要介绍了
[VB.NET]ADO.NET的Update问题,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
ADO.NET的Update问题 今天看着教程用VB做了一个Windows Form程序,运行一切正常,还可以进行
添加、
修改,但无法把
修改写入
数据库,原来用C#写程序时也遇见过同样的问题,不知有那位兄弟在类似经历。 程序读的是
sql SERVER
自带的Pubs
数据库,读取Stores和sales两个表,用了两个DATAADAPTER:StoresTableAdapter和SalesTableAdapter1,dataAdapter用Fill
方法填充数据集:PubsDataSet,填充的
代码如下: Me.StoresTableAdapter.Fill(Me.PubsDataSet.stores) Me.SalesTableAdapter1.Fill(Me.PubsDataSet.sales) 然后用BindingSource对数据进行管理,更改与
添加的过程一切正常,下面是我UpdateAll的
代码部分: Private Sub UpdateAll() ''bmStores.EndCurrentEdit() bmStores.EndEdit() If (Me.PubsDataSet.HasChanges()) Then Try ''首先保存子数据的
删除内容 ''再保存父数据的更新
内容 ''最后再保存子数据的其它更改 ''第一步 If Not PubsDataSet.sales.GetChanges(DataRowState.Deleted) Is Nothing Then Dim dtSalesdeletes As DataTable dtSalesdeletes = Me.PubsDataSet.sales.GetChanges(DataRowState.Deleted) Me.SalesTableAdapter1.Update(dtSalesdeletes) End If ''第二步 If Not PubsDataSet.stores.GetChanges(DataRowState.Deleted) Is Nothing Then Me.StoresTableAdapter.Update(Me.PubsDataSet.stores) End If ''第三步 ''更新
添加 If Not PubsDataSet.sales.GetChanges(DataRowState.Added) Is Nothing Then Dim dtSalesAdds As DataTable dtSalesAdds = Me.PubsDataSet.sales.GetChanges(DataRowState.Added) Me.SalesTableAdapter1.Update(dtSalesAdds) End If ''更新
修改 If Not PubsDataSet.sales.GetChanges(DataRowState.Modified) Is Nothing Then Dim dtSalesChanges As DataTable dtSalesChanges = Me.PubsDataSet.sales.GetChanges(DataRowState.Modified) Me.SalesTableAdapter1.Update(dtSalesChanges) End If Me.PubsDataSet.AcceptChanges() Me.btnSave.Enabled = False Catch ex As Exception Message
Box.Show(ex.Message) End Try End If End Sub 在程序里点击按钮“btnSave”
调用该
函数,如果PubsDataSet的HasChanges()不为空,btnSave.Enable=True,在上面的
代码中可以看到在 Me.PubsDataSet.AcceptChanges() 之后有: Me.btnSave.Enabled = False 每次运行后,点击保存后,btnSave按钮也都不可用,当前
显示修改成功,但打开
数据库却发现并没有
修改,再次运行程序,依旧是
修改前的
内容,偶现在正在纳闷之中,在网上也没查到类似问题,偶原来用C#时,也遇见过这样的问题,从那时到现在,已经重装过多次系统了,现在正在怀疑是不是偶用的软件问题…… __________________________________________________________________________ 看看
数据库里的表有没有主键,没有的话是不行的,就要自己定义更新的语句 __________________________________________________________________________ 估计是主键约束 __________________________________________________________________________ 该
回复于2008-08-31 08:39:40被
管理员或版主
删除 __________________________________________________________________________ http://user.qzone.qq.com/784866864 __________________________________________________________________________ 楼上的QQ
登录不了 应该不是主键约束问题,因为我用的是系统
数据库! __________________________________________________________________________ 我也抄书上的例子试过一次,有时能
添加,有又添不进去,
删除没问题。不知道什么原因。 __________________________________________________________________________ 建议自己拼写
sql __________________________________________________________________________