winform的treeview控件读取数据库生成节点,接下来该怎么做

winform的treeview控件读取数据库生成节点,接下来该怎么做,第1张

这个是商品类型分级的代码,给你参考一下,主要是递归调用节点的加载

private void RefreshTreeView() //根节点,所有节点挂在这个节点下

{

TreeNode tmp = new TreeNode("商品分类")//根节点

tmp.Tag = ""

this.GoodsTypetreeView.Nodes.Add(tmp)

//获取数据,显示到GoodsTypetreeView

String sqlStr = String.Format(@"Select TypeCode,TypeName,ParentTypeCode,case IsCommon when '0' then '否' else '是'

end as IsCommon,case Status when '0' then '未用' else '使用' end as Status,Remark from Com_GoodsType where Status = 1")

DataSet ds = SqlDBHelper.GetDs(sqlStr)

//nodes(this.GoodsTypetreeView.Nodes, ds, 0)

nodes(tmp, ds, "")

}

用了一个递归方法

private void Form1_Load(object sender, EventArgs e)

{

DataRow dr = "select id,name from table where parentId = 0"//获取根节点信息

TreeNode node = new TreeNode()//创建一个根节点

node.Name = dr[0].ToString()

node.Text = dr[1].ToString()

AddNodes(node)//为根节点递归绑定子节点

this.treeView1.Nodes.Add(node)//将根节点放入到树控件

}

private void AddNodes(TreeNode parentNode)

{

DataTable dt = "select id,name from table where parentId = " + node.Name//获取此节点的子节点

if (dt.Rows.Count == 0)

{

return//如果没有根节点则返回;

}

for (int i = 0i <dt.Rows.Counti++)

{

DataRow dr = dt.Rows[i]

TreeNode node = new TreeNode()//创建一个节点

node.Name = dr[0].ToString()

node.Text = dr[1].ToString()

parentNode.Nodes.Add(node)//将节点放到父节点下

AddNodes(node)//然后对该节点进行递归

}

}

treeview没有DataSource属性,需要通过添加节点,如用:treeView1.Nodes.Add(nodes)添加,nodes参数,便可从数据库中读取某个字段信息来填充了。

比如:

//数据库连接,用了helper类

string commandText="select NAME from STUDENT_TB"

dt = OracleHelper.GetDataTable(commandText)

//treeview添加节点数据

string nodes=string.Empty

for(int i=0i<dt.Rows.Counti++)

{

nodes=dt.Rows[i]["NAME"].ToString()

TreeNode root = new TreeNode(nodes)

root.Tag = 0

treeView1.Nodes.Add(root)

}


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

原文地址: http://outofmemory.cn/sjk/10090609.html

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

发表评论

登录后才能评论

评论列表(0条)

保存