求助:datagrid刷新问题

cavok114 2005-08-26 10:02:37
小弟我在一个窗体中有一个oledbadpater1,dataset1,datadrid1,treeview1,每次我点击树种一个节点,动态生成一个oledbadpater1的selectcommand,这个selectcommand每次都是从一个表中选取数据,但选取的字段不同,比如说第一次是select field1 from table1,第二次是select field2 from table1 ,第三次是select field3 from table1 ,而且我执行了dataset.table("table1").clear函数,我发现每次datagrid.setdatabiding重新帮定后,datagrid显示后列名会来及,比如第三次点击时,datafrid中还是会有field1和field2两个列名,当然下面数据显示为NULL。
我查了下资料,在每次olebdadater.fill(dataset1,"table1") 前执行olebbdadapter.tables("table1").remove后,观察到dataset1中数据能正常获取,但datagrid数据确不会刷新,永远是我第一次的select field1 from table1的数据,用了datagrid.refresh()也没用
请大家指教,不胜感激
...全文
140 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwm101 2005-08-27
  • 打赏
  • 举报
回复
可能是你dataset没有清空导致了先清空在装入看看(用ds.clear就可以了)
okyzx 2005-08-27
  • 打赏
  • 举报
回复
一楼直快
hamadou 2005-08-27
  • 打赏
  • 举报
回复
由于你没有重新定义一个datatable,只是每次都清空datatable中的记录,但是你的datatable的结构没有变化,可是你的sql语句却变化了,这样导致你每次都有null的列。你可以每次都做如下处理:
dim tbl as new datatable
oledbadpater1.sqlcommand.commandtext=sqlstr'你每次组合的SQL语句
oledbadpater1.sqlcommand.connection = conn'数据连接
oledbadpater1.fill(tbl)
husd2001 2005-08-27
  • 打赏
  • 举报
回复
up
cavok114 2005-08-27
  • 打赏
  • 举报
回复
cavok114 2005-08-27
  • 打赏
  • 举报
回复
大家帮帮忙呀,在每次循环中,我都把一个表table1删掉了,重新fill(dataset,table1),然后在datagrid.setdatabinding(ds,table1),可惜只有第一次能正常显示,第二次就没有反应了
cavok114 2005-08-27
  • 打赏
  • 举报
回复
可是我每次都是,oledbadpater1.fill(ds,table1)的呀,难道fill(ds)不行的吗?

16,554

社区成员

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

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