如何把数据库中数据读入Treeview中
例如
1
  11
  12
2
  21
  22
读到treeview中

解决方案 »

  1.   

    treeview1.Items.Add();
    treeview1.Items.AddChild()
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
     Tn:TTreeNode;
    begin
     Tn := TreeView1.Items.AddChild(nil,'1');
     TreeView1.Items.AddChild(Tn,'11');
     TreeView1.Items.AddChild(Tn,'12');
     Tn := TreeView1.Items.AddChild(nil,'2');
     TreeView1.Items.AddChild(Tn,'21');
     TreeView1.Items.AddChild(Tn,'22');
    end;
      

  3.   

    var
      a:ttreenode;
    begin
      a:=form1.TreeView1.Items.Add(nil,'adsf');
      form1.TreeView1.Items.AddChild(a,'ad');
    end;
    用到这两个方法,然后从数据表中读出所有的根(1,2),然后添加一个根的名字,再添加这个根下的所有的项目就可以了,如此循环,
      

  4.   

    id          fields
    1             aaa
    11            bbb
    12            ccc
    2             ddd
    21            eee
    22            fff
    数据表就是这个格式的
      

  5.   

    如果你的文本文件是从treeview中导出来的话,重新导入treeview当然可以用
    self.treeview1.loadfromfile('yourfilename');
      

  6.   

    id          fields
    0             000
    1             aaa
    11            bbb
    12            ccc
    2             ddd
    21            eee
    22            fff
    是这样吗?
      

  7.   

    假如是这样:
    1
      11
      12
    2
      21
      22id          parentid
    0             
    1             
    11            1
    12            1
    2             
    21            2
    22            2
      

  8.   

    数据库表格式
    id          fields
    0             000
    1             aaa
    11            bbb
    12            ccc
    2             ddd
    21            eee
    22            fff读入treeview效果
    0  
      -1
        -11
        -12
      -2
        -21
        -22
      

  9.   

    ADOQueryMaster:
     SQL.Text := 'Select Destinct SubString(id, 1, 1) as ID, fields From TableName';打开之后,ADOQueryDetail:
     SQL.Text := Format('Select Destinct SubString(id, 2, 1) as ID, fields From TableName where SubString(id, 2, 1) = %d', [ADOQueryMaster.FieldValues['ID']])这样,可以用一个循环把数据都读出来,
    var Node: TTreeNode;ADOQueryMaster.First;
    while not ADOQueryMaster.Eof do
    begin
      Node := TreeView.Items.Add(nil, ADOQueryMaster.FieldValues['fields']);
      ADOQueryDetail.SQL.Text := Format('Select Destinct SubString(id, 2, 1) as ID, fields From TableName where SubString(id, 1, 1) = %d', [ADOQueryMaster.FieldValues['ID']]); 
      ADOQueryDetail.Open;
      while not ADOQueryDetail.Eof do
      begin
        TreeView.Items.AddChild(Node, ADOQueryDetail.FieldValues['fields']);
        ADOQueryDetail.Next;
      end;
      ADOQueryMaster.Next;
    end;
      

  10.   

    应该可以写出更漂亮的SQL语句,省去嵌套的麻烦