关于数据绑定的保存问题(AcceptChange 和 Updata),极度郁闷中.............

zxbyhcsdn 2003-08-23 10:35:59
我保存数据用的是以下方法
Me.BindingContext(Me.DataSet21, "t_cshtb").EndCurrentEdit()

Me.OleDbDataAdapter1.Update(Me.DataSet21.Tables("t_cshtb"))

Me.DataSet21.Tables("t_cshtb").AcceptChanges()

但是为什么我先用了Me.DataSet21.Tables("t_cshtb").AcceptChanges()

在用Me.OleDbDataAdapter1.Update(Me.DataSet21.Tables("t_cshtb"))就不能保存到数据库中去呀!!!


我查了帮助,AcceptChange是将修改保存到DataSet,而Update是将记录保存到数据库。

想不通!!!!!
...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxbyhcsdn 2003-08-23
  • 打赏
  • 举报
回复
但是怎样才能将修改保存到DataSet啦??
zxbyhcsdn 2003-08-23
  • 打赏
  • 举报
回复
谢谢你! saucer(思归, .NET MVP)
我明白了!

但是我如果是使用的TextBox绑定DataSet,怎样才能将记录保存到DataSet中,而不是数据库中啦?难道我在TextBox中修改了数据就同时保存到DataSet中了吗??
好像有几个状态什么,Modify,Unchange的

我在处理MasterDetail表的时候(就是比如说订单分为单头喝明细两个表,俩个表通过"单号"字段建立外键联系,明细表的主键是"单号"和"商品编码"同时做主键)!

我使用的将两个表通过两个OledbDataAdapter将数据Fill到一个DataSet中,
然后在DataSet中设定MasterDetail关系,

最后将单头的数据通过TextBox绑定,明细通过DataGrid绑定

我要新建一个单据的时候,就用
Me.BindingContext(Me.DataSetDinDanSuRu1, "t_cgdtb").AddNew()

输入完了单头信息

再在DataGrid中输入明细的时候就出问题了

必须将先调用单头表
Me.BindingContext(Me.DataSetDinDanSuRu1, "t_cgdtb").EndCurrentEdit()
Me.DataSetDinDanSuRu1.Tables("t_cgdtb").AcceptChanges()

然后连接明细的DataGrid才能自动在"单号"字段填入单头表的"单号"

但是用了AcceptChange的话又不能将单头的信息保存到数据库了呀!!!

而且那个 DataRowState又是只读的....
saucer 2003-08-23
  • 打赏
  • 举报
回复
>>>但是为什么我先用了Me.DataSet21.Tables("t_cshtb").AcceptChanges()

先调用AcceptChanges()的话,DataSet21就把有变化的记录设成无变化了,再去调用OleDbDataAdapter1.Update,系统认为没有需要更新的记录

>>>AcceptChange是将修改保存到DataSet
不对,AcceptChange是跟DataSet说,把有变化的记录设成无变化状态
zxbyhcsdn 2003-08-23
  • 打赏
  • 举报
回复
不好意思,我已经解决了!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧