treeview 问题,各位大侠请进,急,感谢!!!!!!!!!!!!!!!!!!!!!!

pantung 2005-08-16 11:43:09
TreeView1.SelectedItem.Key 单击节点
得到 keyID(char) 而不是 ID(int) 是怎么回事,老孙?


我得表设计的是int


sql2 = "select * from tbTree where parentID= " & TreeView1.SelectedItem.Key
这是整个一句
-----------------------------
请各位大侠指点
...全文
138 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishmans 2005-08-18
  • 打赏
  • 举报
回复
看你的情况你是要取的KEYID中的ID部分
那么首先你要把你的KEY属性做规范一点,这样才方便简化程序。如你的node.key属性赋值为
key01
key0101
key0102
key02
key0201
............

那么你只要取mid(node.key,4)做为条件就可以了,即sql2 = "select * from tbTree where ID=" &
mid(node.Key ,4)
如果不是那么规范就要写个过程来取得ID部分
pantung 2005-08-17
  • 打赏
  • 举报
回复
感谢 xghim(小飞) ,haen_zhou(Haen)
----------------------------------
TreeView1_nodeclick里面这么写的:

sql2 = "select * from tbTree where ID='" & node.Key & "'"
MyDelUser.rsDK1 sql2
Set MSHFlexGrid1.DataSource = MyDelUser.rs1
MSHFlexGrid1.FormatString = "|id |context |parentID |depth|"

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

可是每次单击 node 的时候报 "数据类型 varchar 转换成 bigint 时出错",如果
sql2 = "select * from tbTree where ID='" & node.Key
这样写,就会报列名 key1 无效(比如我现在单击编号是一的父节点
-----------------------------------
感谢各位高手!
pantung 2005-08-16
  • 打赏
  • 举报
回复
只有一层的tree.当单击父节点时,得到这个父节点下 所有子节点记录,并在 MSHFlexGrid1 显示记录.

id context parentid depth 除了 context为char 其他都是 int
比如点击第一个父节点,MSHFlexGrid1记录如下图

treeview
父节点(1)
子节点
子节点
子节点
子节点
子节点
子节点
父节点
子节点
子节点
子节点
父节点
子节点
子节点
子节点
------------------------------------------
MSHFlexGrid1
id context parentID depth
. . 1 .
. . 1 .
. . 1 .
. . 1 .
. . 1 .
. . 1 .
xghim 2005-08-16
  • 打赏
  • 举报
回复
sql2 = "select * from tbTree where parentID= '" & TreeView1.SelectedItem.Key &"'"
这样写也不会报错的。也可以查到数据。
要么就这样。
sql2 = "select * from tbTree where parentID= " & cint(TreeView1.SelectedItem.Key)
xghim 2005-08-16
  • 打赏
  • 举报
回复
节点的key属性本来就是字符类型啊。你要自己转换一下。用cint(TreeView1.SelectedItem.Key)来得到。
haen_zhou 2005-08-16
  • 打赏
  • 举报
回复
这是因为Treeview的Variant型。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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