protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        string s = TreeView1.SelectedNode.Text.ToString();
        string value = DropDownList_Service.SelectedValue;
        SqlServerDataBase sd = new SqlServerDataBase();
        string s1 = "select User_ID from [db].[dbo].[User] where User_Name='"+s+"'";
        DataSet ds1 = sd.Select(s1, sd.DBconn());
        if (ds1.Tables[0].Rows.Count != 0)
        {
            int id = (int)ds1.Tables[0].Rows[0]["User_ID"];
            String s2 = "select User_Name,a.User_ID from [db].[dbo].[User] as a,User_Service as b,Service where a.User_ID=b.User_ID and Leader_ID="
                + id+" and Service.Service_ID=b.Service_ID and Service_Name='"+value+"'";
            DataSet ds2 = sd.Select(s2, sd.DBconn());
            if (ds2.Tables.Count !=0)
            {
                foreach (DataRow row in ds2.Tables[0].Rows)
                {
                    TreeNode n = new TreeNode(row["User_Name"].ToString(), row["User_ID"].ToString());
                    //n.PopulateOnDemand = true;
                    //n.SelectAction = TreeNodeSelectAction.Expand;
                    TreeView1.SelectedNode.ChildNodes.Add(n);
                }
            }
            else
            {
                string s3 = "select Data_ID from [db].[dbo].[ data] as a,Service as b where User_ID="+id+" and a.Service_ID=b.Service_ID "
                    +"and Service_Name='"+value+"'";
                DataSet ds3 = sd.Select(s3,sd.DBconn());
                if (ds3.Tables[0].Rows.Count != 0)
                {
                    foreach (DataRow row1 in ds3.Tables[0].Rows)
                    {
                        TreeNode n = new TreeNode(row1["Data_ID"].ToString(), "1");
                        //n.PopulateOnDemand = false;
                        //n.SelectAction = TreeNodeSelectAction.Expand;
                        TreeView1.SelectedNode.ChildNodes.Add(n);
                    }
                }
            }
        }
            }else对应的if段代码可以实现,当条件不成立时,else却不能执行?是哪里出问题了,求大神指导

解决方案 »

  1.   

    if段都能执行,就条件不成立时 else没执行 也没报错
      

  2.   

    补充,如果else第一行都没执行,那肯定是执行的if里的,只不多,给你感觉是没执行罢了。另外,代码贴的太乱了,可读性也差,估计没几个人有耐心看完,除非是想要分,憋生疼的。你要是我的学生,我让你三天就把这不好的习惯变过了。
      

  3.   

     protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            string s = TreeView1.SelectedNode.Text.ToString();
            string value = DropDownList_Service.SelectedValue;
            SqlServerDataBase sd = new SqlServerDataBase();
            string s1 = "select User_ID from [db].[dbo].[User] where User_Name='"+s+"'";
            DataSet ds1 = sd.Select(s1, sd.DBconn());
            if (ds1.Tables[0].Rows.Count != 0)
            {
                int id = (int)ds1.Tables[0].Rows[0]["User_ID"];
                String s2 = "select User_Name,a.User_ID from [db].[dbo].[User] as a,User_Service as b,Service where a.User_ID=b.User_ID and Leader_ID="
                    + id+" and Service.Service_ID=b.Service_ID and Service_Name='"+value+"'";
                DataSet ds2 = sd.Select(s2, sd.DBconn());
                if (ds2.Tables.Count !=0)
                {
                    foreach (DataRow row in ds2.Tables[0].Rows)
                    {
                        TreeNode n = new TreeNode(row["User_Name"].ToString(), row["User_ID"].ToString());
                        //n.PopulateOnDemand = true;
                        //n.SelectAction = TreeNodeSelectAction.Expand;
                        TreeView1.SelectedNode.ChildNodes.Add(n);
                    }
                }
                else
                {
                    string s3 = "select Data_ID from [db].[dbo].[ data] as a,Service as b where User_ID="+id+" and a.Service_ID=b.Service_ID "
                        +"and Service_Name='"+value+"'";
                    DataSet ds3 = sd.Select(s3,sd.DBconn());
                    if (ds3.Tables.Count != 0)
                    {
                        foreach (DataRow row1 in ds3.Tables[0].Rows)
                        {
                            TreeNode n = new TreeNode(row1["Data_ID"].ToString(), "1");
                            //n.PopulateOnDemand = false;
                            //n.SelectAction = TreeNodeSelectAction.Expand;
                            TreeView1.SelectedNode.ChildNodes.Add(n);
                        }
                    }
                }
            }
            
      

  4.   

      protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            string s = TreeView1.SelectedNode.Text.ToString();
            string value = DropDownList_Service.SelectedValue;
            SqlServerDataBase sd = new SqlServerDataBase();
            string s1 = "select User_ID from [db].[dbo].[User] where User_Name='"+s+"'";
            DataSet ds1 = sd.Select(s1, sd.DBconn());
            if (ds1.Tables[0].Rows.Count != 0)
            {
                int id = (int)ds1.Tables[0].Rows[0]["User_ID"];
                String s2 = "select User_Name,a.User_ID from [db].[dbo].[User] as a,User_Service as b,Service where "
                    +"a.User_ID=b.User_ID and Leader_ID="
                    + id+" and Service.Service_ID=b.Service_ID and Service_Name='"+value+"'";
                DataSet ds2 = sd.Select(s2, sd.DBconn());
                if (ds2.Tables.Count !=0)
                {
                    foreach (DataRow row in ds2.Tables[0].Rows)
                    {
                        TreeNode n = new TreeNode(row["User_Name"].ToString(), row["User_ID"].ToString());
                        //n.PopulateOnDemand = true;
                        //n.SelectAction = TreeNodeSelectAction.Expand;
                        TreeView1.SelectedNode.ChildNodes.Add(n);
                    }
                }
                else
                {
                    string s3 = "select Data_ID from [db].[dbo].[ data] as a,Service as b where User_ID="+id+" and a.Service_ID=b.Service_ID "
                        +"and Service_Name='"+value+"'";
                    DataSet ds3 = sd.Select(s3,sd.DBconn());
                    if (ds3.Tables.Count != 0)
                    {
                        foreach (DataRow row1 in ds3.Tables[0].Rows)
                        {
                            TreeNode n = new TreeNode(row1["Data_ID"].ToString(), "1");
                            //n.PopulateOnDemand = false;
                            //n.SelectAction = TreeNodeSelectAction.Expand;
                            TreeView1.SelectedNode.ChildNodes.Add(n);
                        }
                    }
                }
            }
      

  5.   

      string s3 = "select Data_ID from [db].[dbo].[ data] as a,Service as b where User_ID="+id+" and a.Service_ID=b.Service_ID "
      +"and Service_Name='"+value+"'";
    response.write(s3);  然后到数据库里执行下当然会打段点最好了
      

  6.   

    我来帮你重新发过吧。        protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
            {
                string s = TreeView1.SelectedNode.Text.ToString();
                string value = DropDownList_Service.SelectedValue;
                SqlServerDataBase sd = new SqlServerDataBase();
                string s1 = "select User_ID from [db].[dbo].[User] where User_Name='" + s + "'";
                DataSet ds1 = sd.Select(s1, sd.DBconn());
                if (ds1.Tables[0].Rows.Count != 0)
                {
                    int id = (int)ds1.Tables[0].Rows[0]["User_ID"];
                    String s2 = "select User_Name,a.User_ID from [db].[dbo].[User] as a,User_Service as b,Service where a.User_ID=b.User_ID and Leader_ID="
                    + id + " and Service.Service_ID=b.Service_ID and Service_Name='" + value + "'";
                    DataSet ds2 = sd.Select(s2, sd.DBconn());
                    if (ds2.Tables.Count != 0)
                    {
                        foreach (DataRow row in ds2.Tables[0].Rows)
                        {
                            TreeNode n = new TreeNode(row["User_Name"].ToString(), row["User_ID"].ToString());
                            //n.PopulateOnDemand = true;
                            //n.SelectAction = TreeNodeSelectAction.Expand;
                            TreeView1.SelectedNode.ChildNodes.Add(n);
                        }
                    }
                    else
                    {
                        string s3 = "select Data_ID from [db].[dbo].[ data] as a,Service as b where User_ID=" + id + " and a.Service_ID=b.Service_ID "
                        + "and Service_Name='" + value + "'";
                        DataSet ds3 = sd.Select(s3, sd.DBconn());
                        if (ds3.Tables[0].Rows.Count != 0)
                        {
                            foreach (DataRow row1 in ds3.Tables[0].Rows)
                            {
                                TreeNode n = new TreeNode(row1["Data_ID"].ToString(), "1");
                                //n.PopulateOnDemand = false;
                                //n.SelectAction = TreeNodeSelectAction.Expand;
                                TreeView1.SelectedNode.ChildNodes.Add(n);
                            }
                        }
                    }
                }
            }
      

  7.   

    就算这样,看着依然头疼建议你把几个Foreach整理一下
      

  8.   

    你的if条件句ds2.Tables.Count != 0 有问题,你用select语句从数据库查询数据,放到DataSet中,即使从数据库中查询出来时空的,也会生成一个DataSet,所以你用这个条件就永远不会走到else里面。你可以把条件设置为:ds2.Tables[0].Rows.Count != 0这样试试,这样应该没问题了。
      

  9.   


    查不出东西的时候,Tables[0]是不存在的。。
      

  10.   

    在C#中,如果查到的东西为空,返回到DataSet里是有表的,只不过表的内容为空,你可以试试。我做C/S系统时是这样的,B/S没试过,不过我觉得应该一样。
      

  11.   

    if只要条件走过,走到一半不会再走else了,除非是if里面的条件不通过才会走else
      

  12.   

    坑爹啊,你断点调试一下不就好了,不可能有if不执行else也不执行的情况。可能是执行了一个!
      

  13.   


    if (ds3.Tables[0].Rows.Count !=0)  是这条语句出现的错误
      

  14.   


    if (ds3.Tables[0].Rows.Count !=0)  是这条语句出现的错误