我用的是Access数据库,表的内容如下:
lngDeptId lngFatherId strDeptName
1 0 北京市
2 0 上海市
3 0 广东省
4 1 怀柔县
5 1 密云县
6 3 广州市
7 3 深圳市
运行如下代码:(C# WinForm)
private DataSet data(string sql)
{
string luj = System.Windows.Forms.Application.StartupPath;
string path = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+luj.Remove(luj.Length-9,9) +"DeptList.mdb;User Id=admin;Password=;";
OleDbConnection conn=new OleDbConnection(path);
conn.Open();
OleDbDataAdapter ad=new OleDbDataAdapter(sql,conn);
DataSet ds = new DataSet();
ad.Fill(ds,"Dept");
conn.Close();
return ds;
}private void Form1_Load(object sender, System.EventArgs e)
{
InitTree(this.treeView1.Nodes, "0");
}private void InitTree(TreeNodeCollection Nds,string ParentId)
{
string a = ParentId;
string sql = "select * from Dept where lngFatherId ='"+a+"'";
DataSet ds = data(sql);
for(int i =0;i<ds.Tables["Dept"].Rows.Count;i++)
{
TreeNode tmpnd= new TreeNode();
tmpnd.Tag =ds.Tables[0].Rows[i][0].ToString();
tmpnd.Text=ds.Tables[0].Rows[i][2].ToString();
Nds.Add(tmpnd);
InitTree(tmpnd.Nodes,ds.Tables[0].Rows[i][0].ToString());
}
}
运行得到的结果却是:
北京市
北京市
上海市
广东省
怀柔县
密云县
广州市
深圳市
上海市
广东省
北京市
上海市
广东省
怀柔县
密云县
广州市
深圳市
我想要的结果是:
北京市
怀柔县
密云县
上海市
广东省
广州市
深圳市请问是怎么回室???应该怎么改???请各位高手帮我改改,或提供一个新的源码,实现我想要的结果。注:树是要多级的,如市下有县,县下有乡镇,……
lngDeptId lngFatherId strDeptName
1 0 北京市
2 0 上海市
3 0 广东省
4 1 怀柔县
5 1 密云县
6 3 广州市
7 3 深圳市
运行如下代码:(C# WinForm)
private DataSet data(string sql)
{
string luj = System.Windows.Forms.Application.StartupPath;
string path = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+luj.Remove(luj.Length-9,9) +"DeptList.mdb;User Id=admin;Password=;";
OleDbConnection conn=new OleDbConnection(path);
conn.Open();
OleDbDataAdapter ad=new OleDbDataAdapter(sql,conn);
DataSet ds = new DataSet();
ad.Fill(ds,"Dept");
conn.Close();
return ds;
}private void Form1_Load(object sender, System.EventArgs e)
{
InitTree(this.treeView1.Nodes, "0");
}private void InitTree(TreeNodeCollection Nds,string ParentId)
{
string a = ParentId;
string sql = "select * from Dept where lngFatherId ='"+a+"'";
DataSet ds = data(sql);
for(int i =0;i<ds.Tables["Dept"].Rows.Count;i++)
{
TreeNode tmpnd= new TreeNode();
tmpnd.Tag =ds.Tables[0].Rows[i][0].ToString();
tmpnd.Text=ds.Tables[0].Rows[i][2].ToString();
Nds.Add(tmpnd);
InitTree(tmpnd.Nodes,ds.Tables[0].Rows[i][0].ToString());
}
}
运行得到的结果却是:
北京市
北京市
上海市
广东省
怀柔县
密云县
广州市
深圳市
上海市
广东省
北京市
上海市
广东省
怀柔县
密云县
广州市
深圳市
我想要的结果是:
北京市
怀柔县
密云县
上海市
广东省
广州市
深圳市请问是怎么回室???应该怎么改???请各位高手帮我改改,或提供一个新的源码,实现我想要的结果。注:树是要多级的,如市下有县,县下有乡镇,……
调试一下看看吧