关于数据绑定的问题,那位大哥帮助解决?在线等

amice 2003-10-15 02:11:46
有一个listbox和几个textbox,
当在listbox中选择时,
textbox中显示同一datarow的其他信息。
我希望能够保存在textbox中所作的修改,
可是在界面上的值变了而在数据库中没有变。
代码如下:
我先找到当前编辑的datarow:
Dim rowuser As DataSet1.DBUserInforRow
Dim i As Integer
i = Me.BindingContext(DataSet11, "dbuserinfor").Position
rowuser = DataSet11.DBUserInfor.Item(i)
Console.WriteLine(rowuser.RowState.ToString)
(这时datarow的rowdate是unchange)
rowuser.Item("name") = Trim(txtname.Text)
Console.WriteLine(rowuser.RowState.ToString)
(这时datarow的rowdate还是unchange)
sqldauser.Update(DataSet11)

另外我对于rowstate的值也不太理解,
做什么操作才能使rowstate变成modify呢?
...全文
26 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzg530 2003-10-18
  • 打赏
  • 举报
回复
做完一次编辑更改应该刷新一下DataSource.Refresh()
91bct 2003-10-18
  • 打赏
  • 举报
回复
你的sqldauser是怎么来的,自己定义的还是利用向导生成的?
如果是向导生成的,另外如果你的table有pk,那么加上这句
BindingContext(DataSet11, "dbuserinfor").EndCurrentEdit();
一般就可以了。
如果你的数据适配器的commandtext是查询没有主键的表或者查询联合表,这样你直接通过
BindingContext(DataSet11, "dbuserinfor").EndCurrentEdit();
this.sqldauser.Update(this.mydataset,"mytable");是保存不成功的。
haoliqi 2003-10-17
  • 打赏
  • 举报
回复
vb不太懂
southdoor 2003-10-17
  • 打赏
  • 举报
回复
同意楼上,需要先结束编辑状态.我也遇到过同样的问题.
applehuang2000 2003-10-17
  • 打赏
  • 举报
回复
加一句Me.BindingContext(DataSet11, "dbuserinfor").EndCurrentEdit()就搞定了.

16,549

社区成员

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

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