Delphi6中使用Treeview显示及修改数据库中树形结构表

Delphi6中使用Treeview显示及修改数据库中树形结构表,第1张

建议你下载一个三方控件,用里面的TdxDBTreeList来直接 *** 作树形表。如果是自己用TreeView来创建的话,要用循环分多步 *** 作了。1、查出父结点数据2、循环写入父结点(可以将各结点序号放入SelectedIndex来做临时存储)3、循环当前已写入的父结点,并根据SeletedIndex(父结点序号)来查出属于当前序号的子结点,有数据的话 再循环写入子结点4、按上述方式循环判断下级子结点就可以创建一个树形结构表了。 对于添加,删除等 *** 作,也可以根据SeletedIndex结合Level来 *** 作。

乱的原因很简单,你看这个排序是

8 ba

2 er

9 jiu

6 liu

7 qi

3 san

4 si

5 wu

1 yi

明白了么?读出来的数据的确是按顺序来的,但是不是汉字数字意义的顺序,而是汉语拼音!!

你可以把汉字和数字对应起来,重新排序,然后再写到树里面

这是以前写的,可以参考一下!

treeView里面实现数据绑定

DataSet ds;

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

//以下是绑定数据

SqlConnection con = new

SqlConnection("server=;database=Test;uid=sa;pwd=sa");

SqlDataAdapter adapter = new SqlDataAdapter("select  from TreeViewTest", con);

ds = new DataSet();

adapterFill(ds, "TreeViewTest");

//初始化TreeView :TreeView1Nodes:表示TreeView1的节点集合 ,"0"表示的是最顶上节点没有父节点

InitTree(TreeView1Nodes, "0");

}

}

/// <summary>

/// 初始化TreeView

/// </summary>

/// <param name="Nds">TreeNodeCollection:节点的集合</param>

/// <param name="parentId">parentId:某一节点的父节点ID</param>

private void InitTree(TreeNodeCollection Nds, string parentId)

{

DataView dv = new DataView();

TreeNode tmpNd;

//string intId;

dvTable = dsTables["TreeViewTest"];

//筛选出 ParentId父节点ID为传入值parentId的所有的数据行 为"0"时表时选出所有的顶节点数据行

dvRowFilter = "ParentId='" + parentId + "'";

//将筛选出的所有的数据行添加到节点

foreach (DataRowView drv in dv)

{

tmpNd = new TreeNode();

tmpNdValue = drv["NodeId"]ToString();

tmpNdText = drv["NodeName"]ToString();

NdsAdd(tmpNd);

//判断是不是存在drv["NodeId"]的ChildNodes,存在的话添加,不存在就继续遍历

DataView dvTemp = new DataView();

dvTempTable = dsTables["TreeViewTest"];

dvTempRowFilter = "ParentId='" + drv["NodeId"]ToString() + "'";

if (dvTempCount != 0)

{

InitTree(tmpNdChildNodes, tmpNdValue);

}

}

}

您好,procedure TForm1Button1Click(Sender: TObject);

var

sql,str,tbl:string;

NodeD,NodeT: TTreeNode;

begin

sql:='select name from mastersysdatabases order by name';

ADOQ1Close;

ADOQ1SQLClear;

ADOQ1SQLAdd(sql);

ADOQ1Open;

while not ADOQ1Eof do

begin

NodeD:=TreeviewItemsAdd(nil,ADOQ1FieldByName('name')AsString);

NodeT:=NodeD;

str:=ADOQ1FieldByName('name')AsString;

tbl:='';

sql:='select Aname TBL,Bname FLD from '+str+'sysobjects A,'+str+'syscolumns B where Aid=Bid AND Axtype=''U'' order by AName,BColorder';

ADOQ2Close;

ADOQ2SQLClear;

ADOQ2SQLAdd(sql);

ADOQ2Open;

while not ADOQ2Eof do

begin

if ADOQ2FieldByName('TBL')AsString=tbl then

begin

TreeViewItemsAddChild(NodeT,ADOQ2FieldByName('FLD')AsString);

end

else

begin

tbl:=ADOQ2FieldByName('TBL')AsString;

NodeT:=TreeViewItemsAddChild(NodeD,tbl);

TreeViewItemsAddChild(NodeT,ADOQ2FieldByName('FLD')AsString);

end;

ADOQ2Next;

end;

ADOQ1Next;

end;

end;

在form上放两个ADOQuery: ADOQ1,ADOQ2,链接好数据库,再放一个按钮,以上是个按钮事件,已经调试通过了,没有问题。

这是以前写的,可以参考一下!treeView里面实现数据绑定 DataSet ds; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //以下是绑定数据 SqlConnection con = new SqlConnection("server=;database=Test;uid=sa;pwd=sa"); SqlDataAdapter adapter = new SqlDataAdapter("select from TreeViewTest", con); ds = new DataSet(); adapterFill(ds, "TreeViewTest"); //初始化TreeView :TreeView1Nodes:表示TreeView1的节点集合 ,"0"表示的是最顶上节点没有父节点 InitTree(TreeView1Nodes, "0"); } } /// /// 初始化TreeView /// /// TreeNodeCollection:节点的集合 /// parentId:某一节点的父节点ID private void InitTree(TreeNodeCollection Nds, string parentId) { DataView dv = new DataView(); TreeNode tmpNd; //string intId; dvTable = dsTables["TreeViewTest"]; //筛选出 ParentId父节点ID为传入值parentId的所有的数据行 为"0"时表时选出所有的顶节点数据行 dvRowFilter = "ParentId='" + parentId + "'"; //将筛选出的所有的数据行添加到节点 foreach (DataRowView drv in dv) { tmpNd = new TreeNode(); tmpNdValue = drv["NodeId"]ToString(); tmpNdText = drv["NodeName"]ToString(); NdsAdd(tmpNd); //判断是不是存在drv["NodeId"]的ChildNodes,存在的话添加,不存在就继续遍历 DataView dvTemp = new DataView(); dvTempTable = dsTables["TreeViewTest"]; dvTempRowFilter = "ParentId='" + drv["NodeId"]ToString() + "'"; if (dvTempCount != 0) { InitTree(tmpNdChildNodes, tmpNdValue); } } }

以上就是关于Delphi6中使用Treeview显示及修改数据库中树形结构表全部的内容,包括:Delphi6中使用Treeview显示及修改数据库中树形结构表、treeview连接数据库,显示出来的数据怎么是乱的呢、怎么用递归 绑定数据库 显示在treeview中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9546845.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存