public partial class TreeView : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        tree();    }
    private void tree()
    {
        DataView dv = new DataView();
        SqlDataAdapter sda;
        DataSet ds;
        string tab = "table";
        try
        {
            SqlConnection con = new SqlConnection("server=.;database=ysenTest;uid=sa;pwd=;");
            sda = new SqlDataAdapter("select * from class where classID=0", con);
            ds = new DataSet();
            sda.Fill(ds, tab);
            dv = ds.Tables[tab].DefaultView;
            TreeNode tmpNd;            foreach (DataRowView drv in dv)
            {
                tmpNd = new TreeNode();
                tmpNd.Text = drv["className"].ToString();
                tmpNd.Value = drv["ID"].ToString();
                TreeView1.Nodes.Add(tmpNd);
                childclass(tmpNd, Convert.ToInt32(drv["ID"]));
            }
        }
        catch (Exception ee)
        {
            throw (ee);
        }    }
    private void childclass(TreeNode nds, int parentID)
    {
        DataView dv = new DataView();
        SqlDataAdapter sda;
        DataSet ds;
        string tab = "table1";
        try
        {
            SqlConnection con = new SqlConnection("server=.;database=ysenTest;uid=sa;pwd=;");
            sda = new SqlDataAdapter("select * from class", con);
            ds = new DataSet();
            sda.Fill(ds, tab);
            dv = ds.Tables[tab].DefaultView;
            dv.RowFilter = "classID <> 0 and id=" + parentID + "";
            TreeNode tmpNd;
            foreach (DataRowView drv in dv)
            {
                tmpNd = new TreeNode();
                tmpNd.Text = drv["className"].ToString();
                tmpNd.Value = drv["ID"].ToString();
                nds.ChildNodes.Add(tmpNd);
                childclass(nds, Convert.ToInt32(drv["ID"].ToString()));            }
        }
        catch (Exception ee)
        {
            throw (ee);
        }
             }}上面的代码为什么当我运行到子节点 foreach (DataRowView drv in dv)语句的时候就退出不执行了??什么原因??

解决方案 »

  1.   

    dv.RowFilter = "classID <> 0 and id=" + parentID + ""; vb? 改一下
     放在foreach (DataRowView drv in dv)前 要用c#
      

  2.   

    你是用id关联的?
    dv.RowFilter = "classID <> 0 and id=" + parentID + "";是不是没有数据的缘故?
      

  3.   

    我的数据库这样设计的
    id    classname   classid
    ---------------------
    1        音乐欣赏 0
    2 BT专区 0
    3 文学欣赏 0
    4 电影插曲 1
    5 欧美摇滚 1
    6 日韩音乐 1
    7 古典音乐 1
    8 成人BT 2
    9 电影BT 2
    10 动漫BT 2
    11 小说欣赏 3
    12 原传文笔 3
    13 个人随笔 3
      

  4.   

    dv.RowFilter = "classID <> 0 and id=" + parentID;