公司:id(int) company(varchar(50)
部门:id(int) deid(int) department(varchar(50))
班组:id(int) coid(int) class(varchar(50))
非递归实现
string strConn = System.Configuration.ConfigurationManager.ConnectionStrings[ " rizhi " ].ConnectionString;
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(strConn);
using (conn)
{
SqlDataAdapter sda_Company = new SqlDataAdapter( " select [id],[company] from [company] " , conn);
sda_Company.Fill(ds, " company " );
TreeNode tn_Company;
TreeNode tn_Department;
TreeNode tn_Class;
foreach (DataRow company_row in ds.Tables[ " company " ].Rows)
{
tn_Company = new TreeNode();
tn_Company.Text = company_row[ " company " ].ToString();
tn_Company.Value = company_row[ " id " ].ToString();
TreeView1.Nodes.Add(tn_Company);
SqlDataAdapter sda_Department = new SqlDataAdapter( " select [id],[department] from [department] where coid= " + tn_Company.Value, conn);
sda_Department.Fill(ds, " department " );
if (ds.Tables[ " department " ].Rows.Count > 0 )
{
foreach (DataRow department_row in ds.Tables[ " department " ].Rows)
{
tn_Department = new TreeNode();
tn_Department.Text = department_row[ " department " ].ToString();
tn_Department.Value = department_row[ " id " ].ToString();
tn_Company.ChildNodes.Add(tn_Department);
SqlDataAdapter sda_Class = new SqlDataAdapter( " select [id],[class] from [class] where deid= " + tn_Department.Value, conn);
sda_Class.Fill(ds, " class " );
if (ds.Tables[ " class " ].Rows.Count > 0 )
{
foreach (DataRow class_row in ds.Tables[ " class " ].Rows)
{
tn_Class = new TreeNode();
tn_Class.Text = class_row[ " class " ].ToString();
tn_Class.Value = class_row[ " id " ].ToString();
tn_Department.ChildNodes.Add(tn_Class);
}
ds.Tables[ " class " ].Clear();
}
sda_Class.Dispose();
}
ds.Tables[ " department " ].Clear();
}
sda_Department.Dispose();
}
sda_Company.Dispose();
}
}
}