重要问题(在线急等)关于TreeView递归生成树形菜单
各位高手前辈们,近日我在做一个从ORACLE数据库取出数据数据绑定到TreeView中的功能,我的数据库大致是这样的:
CDID CDMC CDLX CDCC
10 存管中心 0 1
20 客户账户类查询 0 2
30 资金资料查询 1 3
40 股东资料查询 1 3
50 银行账户查询 1 3
55 柜员资料查询 1 3
60 客户资产类查询 0 2
.
.
.
.
我的代码是这样的:
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
this.TreeView1.Nodes.Clear();
OracleConnection cnn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings[ "DSN "]);
cnn.Open();
TreeNode node=new TreeNode();
ShowAllTree(this.TreeView1.Nodes,1,cnn,node); //根节是以PID为0标志的
cnn.Close();
}
}
//执行绑定功能
private void ShowAllTree(TreeNodeCollection nodes,int id,OracleConnection cnn,TreeNode node)
{
string OracleSelect = "SELECT * FROM xt_cdk where cdcc = ' " + id+ " ' ";
OracleDataAdapter da = new OracleDataAdapter(OracleSelect,cnn);
DataTable dt=new DataTable();
da.Fill(dt);
for(int i=0;i <dt.Rows.Count;i++)
{
TreeNode newNode=new TreeNode();
newNode.Text = dt.Rows[i][1].ToString();
nodes.Add(newNode);
int newID = int.Parse(dt.Rows[i][0].ToString());
ShowAllTree(newNode.Nodes,newID,cnn,newNode); //递归调用,将子结点ID当做下一当前结点ID