各位大侠,我用treeview做的连接数据库,我想问一下怎么样才能实现以下目标:
    当我选择到一个父节点的时候,我能知道这是第几个父节点
这样才能准确寻找数据库中的相关记录,因为有的时候id号有相同的,treeview节点基本设置是:id1
             name
             sex
             buwei
              sheye1
              sheye2
           id2
             name
             sex
             buwei
              sheye1
              sheye2
             .
             .
             .
             .
             .
             .
             .
             .
             .

解决方案 »

  1.   

    你可以利用TTreeNode的Index属性及其Parent节点的Index属性来确定一个节点的IDTreeView1.Selected.Index
    TreeView1.Selected.Parent.Index利如,在一个三级树里,一个节点的index是1 ,其父节点的index是3, 其父节点的父节点的index是4,那 ID 就是431另外,也可以把节点ID标记在TreeNode的Data属性里
      

  2.   

    可能是我说的不清楚啊
    在数据库中有的时候可能是重复登记一个人,当你要在treeview 中删除你选择的其中的一个的时候,就容易出错,为了避免这个错误,我想把我选择的节点的最顶层节点(也就是代表id的那个节点的序号)找出来,并由当前id的序号在数据库中找到对应记录删除,比如说:
    id    name    sex    buwei    sheye    xuhao
    0001   zhangsan  f   shou     11       ???
    0002   lisi      m   shou    11       ???
    0001  zhangsan   f   tou     11       ???
    ......
    我的中显示的是
             0001
                zhangsan
                f
                shou
                   11
              0002
                 lisi
                 m
                 shou
                    11
               0001
                 zhangsan
                 f
                 tou
                   11
                 ............
    这个时候就有重复的记录了
      

  3.   

    每个id的表示序号(xuhao)都是在产生新的数据的时候写入的
      

  4.   

    除非我还是没有看明白你的意思,或者你没有看明白我的意思.id    name    sex    buwei    sheye    xuhao
    431   zhangsan  f   shou     11       ???
    882   lisi      m   shou    11       ???
    431  zhangsan   f   tou     11       ???上面这个id , 每个人都是唯一的, 那就是我在前面举例的 431
    你只要删除那个 431 的节点, 就用代码在数据表中删除 id 为431的所有记录.
      

  5.   

    如果你的ID还有其它的用途, 那你就再建一个字段, 存储这个人的唯一信息,也就是他在TreeView里的ID
      

  6.   

    前面已说过 还可以利用 TreeNode的data属性, 举一例:增加一个节点时:
    var
      Node : TTreeNode;
    begin
      Node := TreeView1.Items.AddChild(某父节点, '张三');
      Node.Data := Pointer(0001);//假设ID是0001
    end;使用时
      integer(TreeView1.Selected.Data)就是选中节点的ID
      

  7.   

    TreeView使用的时候最主要的是操作TreeNode,它有几个经常会用到的属性:
    AbsoluteIndex :相对于树的第一个节点的位置
    Index :相对于其父节点的第一个子节点位置 
    Data :指针,一般用它来保存节点详细数据结构的变量地址
    HasChildren :是否有孩子节点
    ImageIndex :节点的图片的imagelist里的index
    Level :级数,一级根节点为0
    Parent :父节点对象
      

  8.   

    我一般是这样弄
    ID  PID  Name ID是自己的id  PID是父ID  这样就一目了然了 ^_^ 其他的haschildren之类的都可以看情况处理
      

  9.   

    我刚做了一个相应的列字 就是通过id 与pid 解决的
      

  10.   

    treeview1.Items.Delete(treeview1.Selected);
      

  11.   

    我也建议lihuasoft说的,增加一个字段用来标识唯一ID,然后用这个唯一ID来建树。
    但是我觉得象LZ说的那样的话,建树没有任何意义,还不如用DBGRID来显示。
    树一般是表现多个记录间上下级关系用的,对于单条记录没什么用