SqlDataReader rd = mng.SelectReader(sb.ToString());
if(rd.FieldCount>0)
{
return true;
}
else
{
return false;
}
rd.Close();错误信息,rd  检测到无法访问到的代码!在判断之前我就申明了 rd 判断之后怎么会无法访问到呢?

解决方案 »

  1.   

    if之中无论true、false都return了,所以rd.Close();无法访问到
      

  2.   

    因为你在执行rd.Close()之前,就已经Return 了,所以这个rd.Close()是不会被执行的,所以
    编译器报“无法访问”。你应该在return之前执行rd.Close()
      

  3.   

    我这段代码是写在一个方法里面的:  这个方法的返回类型是bool ,代码中的return 是返回给方法的
        
    private bool test
    {
    SqlDataReader rd = mng.SelectReader(sb.ToString());
    if(rd.FieldCount>0)
    {
    return true;
    }
    else
    {
    return false;
    }
    rd.Close();
    }该怎么写呢?请写出来吧
      

  4.   

    private bool test
    {
    SqlDataReader rd = mng.SelectReader(sb.ToString());
    if(rd.FieldCount>0)
    {
             rd.Close();
    return true;
    }
    else
    {
             rd.Close();
    return false;
    }}
      

  5.   

    最简单就是直接在每个return前面加一句rd.Close();后面的就不需要了