DAL层
ALTER PROCEDURE  [dbo].[Op_TreeTiQu] (@type1 int=0,@jxldm1 int =0)
AS
BEGIN
if @type1 =11/*第一节点*/
begin 
SELECT DISTINCT jxlmc, jxldm
FROM         jwxt_jxl
order by jwxt_jxl .jxlmc    
end
if @type1 =12/*第二节点*/
begin
SELECT     jwxt_ksb.ksm, jwxt_ksb.ksbh, jwxt_jxl.jxldm
FROM         jwxt_ksb INNER JOIN
                      jwxt_jxl ON jwxt_ksb.jxldm = jwxt_jxl.jxldm
                      where jwxt_jxl .jxldm =@jxldm1 
order by jwxt_ksb .ksm  
end
END   BLL层
public static DataTable BLL_Select_TreeShuJuTiQu()
      {
          //准备调用DAL层方法的对应参数
          SqlParameter[] SQLCMDpas =
      {
      new SqlParameter ("@type1",SqlDbType .Int )
      };
      SQLCMDpas [0].Value =11;
      //实例化DAL层对应的类,调用DAL类,传入参数
      DataTable dt =DAL .PublicMethod.DAL_SelectDB_Par ("Op_TreeTiQu",SQLCMDpas );
      return dt;      }
      public static DataTable BLL_Select_TreeShuJuTiQu1(int jxldm1)
      {
          //准备调用DAL层方法的对应参数
          SqlParameter[] SQLCMDpas =
      {
      new SqlParameter ("@type1",SqlDbType .Int ),
       new SqlParameter ("@jxldm1",SqlDbType .Int )
      };
          SQLCMDpas[0].Value = 12;
          SQLCMDpas[1].Value = @jxldm1;
          //实例化DAL层对应的类,调用DAL类,传入参数
          DataTable dt = DAL.PublicMethod.DAL_SelectDB_Par("Op_TreeTiQu", SQLCMDpas);
          return dt;      }
UIL层
UIL的方法我不知道应该怎么写,请哪位高手帮我写一下UIL的代码

解决方案 »

  1.   

    看下面的例子。。
    /// <summary>
        /// 创建DataSet的方法
        /// </summary>
        /// <param name="nodes">TreeView的根节点</param>
        /// <param name="ds">Dataset数据集合</param>
        /// <param name="pid">节点的父</param>
        private void CreateTreeView(TreeNodeCollection nodes, DataSet ds, int pid)
        {
            //定义筛选条件
            string sql = string.Format("ParentID={0}", pid);        //从Dataset中筛选符合条件的行的集合
            DataRow[] drr = ds.Tables[0].Select(sql);        //遍历获得行的集合
            foreach (DataRow dr in drr)
            {
                //创建TreeView节点
                TreeNode tnode = new TreeNode();
                //添加到根节点中
                nodes.Add(tnode);
                //设置显示的文本
                //tnode.ImageUrl = "images/foldericon1.gif";
                tnode.Text = dr["PurName"].ToString();
                tnode.Value = dr["PurID"].ToString();
                //设置显示的路径
                tnode.NavigateUrl = dr["PurURL"].ToString();
                //递归调用方法
                CreateTreeView(tnode.ChildNodes, ds, Convert.ToInt32(dr["PurID"]));
                //从Dataset中删除已经添加的行,提高访问效率
                ds.Tables[0].Rows.Remove(dr);        }
        }
      

  2.   


    如果不创建DataSet,请问要怎么写呢?
      

  3.   

    微软自带的有TreeView控件,另外第3方的控件也很多,比如:component art ui,梅花雪树,纯js的,csdn论坛里面的树用的就是这个。