想在重用一段代码,查找学生的学号,使用了VS中的"重构"---提出方法的功能,但每次选中下面的代码,弹出提示:当所选代码包含返回语句时,所有代码路径也必须通过返回语句终止:
      string StudentNo="";
        string studentNoSQL="select StudentsNo from Students where Slogin='"+Session["UserName"].ToString()+"'";
           DBHelper.Conn.Open();
           SqlCommand StudentNoComm = new SqlCommand(studentNoSQL, DBHelper.Conn);
           SqlDataReader StudentNodr = Comm.ExecuteReader();
            if (StudentNodr.Read())
            {
                StudentNo = dr["StudentsNo"].ToString();
                
            }              DBHelper.Conn.Close();
            return StudentNo;

解决方案 »

  1.   

    用了if else语句,可能只在程序的一次执行过程中,执行其中的某一步份,而另外的分支没有执行。这样的话每个分支都要加上相应的return语句。
      

  2.   

    这样,加上了,也不行
            string StudentNo="";
            string studentNoSQL="select StudentsNo from Students where Slogin='"+Session["UserName"].ToString()+"'";
               DBHelper.Conn.Open();
               SqlCommand StudentNoComm = new SqlCommand(studentNoSQL, DBHelper.Conn);
               SqlDataReader StudentNodr = Comm.ExecuteReader();
                if (StudentNodr.Read())
                {
                    StudentNo = dr["StudentsNo"].ToString();
                    return StudentNo;
                }  
            else
                {
                    return StudentNo;
                }            DBHelper.Conn.Close();
                return StudentNo;