您的位置:程序门 -> .net技术 -> vb.net



问一个用textbox给datagridview的cell赋值后更新数据库的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


问一个用textbox给datagridview的cell赋值后更新数据库的问题
发表于:2007-09-05 13:33:11 楼主
我把一个sqldataadapter   绑定到一个datagridview之后,用textbox上的值对某个单无格赋值datagridview.item(1,1).value=textbox1.text,赋值成功,但调用sqldataadapter.update(datatable),却无法更新数据库,也不报错。非得要在datagridview上点下别的单无格后再更新才能成功,不知为什么,谢谢。
发表于:2007-09-05 13:35:321楼 得分:0
up
发表于:2007-09-08 13:54:112楼 得分:0
居然没人知道?我再顶一下。
发表于:2007-09-08 14:18:583楼 得分:0
因为sqldataadapter.update的事件顺序决定的。
比如,你在单元格里无论怎么改,它都不会更新,因为你没有最终确定。如果你点击其他单元格了,就相当于你确定所做的修改,这时,sqldataadapter.update才会执行。
发表于:2007-09-20 17:54:344楼 得分:0
楼上朋友,我是调用了sqldataadapter.update   事件后仍然没有更新啊。
发表于:2007-09-20 18:50:275楼 得分:0
点一下别的单元格是让焦点转移后,gridview才提交数据。否则焦点在你想更改的单元格里,你update的数据还是table中美修改之前的数据,当然没反应了。如果是行更改或者在textbox上更改值,然后再gridview上显示更新后的内容,可以调用gridview的rowcolchang事件。然后再自己写一个textbox.text=talel.row(0).iteam( " ")之类的sub   在上面事件中调用。
发表于:2007-09-20 20:02:186楼 得分:0
谢谢楼上的朋友。
发表于:2007-09-21 10:47:067楼 得分:0
如果你使用了bindingsource的情况下,可以参考下面代码:
        me.validate()
        me.单项维护bindingsource.endedit()
        me.单项维护tableadapter.update(me.工资管理dataset.单项维护.getchanges)
        me.工资管理dataset.单项维护.acceptchanges()
------------------------------------------------------------------------------
例程来源:人民邮电出版社出版的书《visual   basic   .net   2005数据库编程技术与实例》
人民邮电出版社出版:http://www.ptpress.com.cn/books/book_information.asp?bid=16271
中国互动出版网:http://www.china-pub.com/computers/common/info.asp?id=35208
------------------------------------------------------------------------------
------------------------------------------------------------------------------
发表于:2007-09-22 10:06:048楼 得分:0
你代码没有写对.可能没有给dataadapter指定要更新的表!给你一个简单的例子:
dim   cnqtgl   as   new   sqlconnection( "server=localhost;database=qtgl; "   _
&   "integrated   security=true ")
'创建两个dataadapter对象
dim   dacustomer   as   new   sqldataadapter( "select   *   from   旅客 ",   cnqtgl)
dim   dastayrecord   as   new   sqldataadapter( "select   *   from   入住记录 ",   cnqtgl)
'创建dataset对象dsqtgl
dim   dsqtgl   as   new   dataset()

private   sub   btnfill_click(byval   sender   as   system.object,   byval   e   as   system.eventargs)   handles   btnfill.click
dacustomer.fill(dsqtgl,   "旅客 ")
dastayrecord.fill(dsqtgl,   "入住记录 ")
'datagrid控件显示
dgrd.datasource   =   dsqtgl.tables( "旅客 ")
end   sub

private   sub   btnupdate_click(byval   sender   as   system.object,   byval   e   as   system.eventargs)   handles   btnupdate.click
'创建两个commandbuilder分别用于两个dataadapter对象更新,
dim   cmb1   as   new   sqlcommandbuilder(dacustomer)
dim   cmb2   as   new   sqlcommandbuilder(dastayrecord)
dastayrecord.update(dsqtgl.tables( "入住记录 "))
dacustomer.update(dsqtgl.tables( "旅客 "))
end   sub


快速检索

最新资讯
热门点击