public bool ReturnRID()
    {
        string id = DetailsView1.DataKey.Value.ToString();
        SqlDataReader sdr = null;
        user getUser = new user();
        sdr = getUser.SelectRIDFromBorrow();
        while (sdr.Read())
        {
            if (id == sdr["RID"].ToString())
            {
                return true;
            }
            else
            {
                return false;
            }
         }
    }
提示“并非所有的代码路径都有返回值”,我该怎么改呢?

解决方案 »

  1.   

    while (sdr.Read())
            {
                if (id == sdr["RID"].ToString())
                {
                    return true;
                }
             }
    return false;
      

  2.   

    public bool ReturnRID()
        {
            string id = DetailsView1.DataKey.Value.ToString();
            SqlDataReader sdr = null;
            user getUser = new user();
            sdr = getUser.SelectRIDFromBorrow();
            while (sdr.Read())
            {
                if (id == sdr["RID"].ToString())
                {
                    return true;
                }
             }
             return false; //<<<<<<<<<
        }
      

  3.   

    public bool ReturnRID()
    {
    string id = DetailsView1.DataKey.Value.ToString();
    SqlDataReader sdr = null;
    user getUser = new user();
    sdr = getUser.SelectRIDFromBorrow();
    while (sdr.Read())
    {
    if (id == sdr["RID"].ToString())
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    return false;
    }
    试一下
      

  4.   

    while (sdr.Read())
            {
                    return (id == sdr["RID"].ToString());
             }
      

  5.   

    public bool ReturnRID()
    {
            bool result = false;
            string id = DetailsView1.DataKey.Value.ToString();
            SqlDataReader sdr = null;
            user getUser = new user();
            sdr = getUser.SelectRIDFromBorrow();
            while (sdr.Read())
            {
                if (id == sdr["RID"].ToString())
                {
                    result = true;
                }
                else
                {
                    result = false;
                }
             }
             sdr.Close();
             return result;
    }
      

  6.   

    public bool ReturnRID()
        {
            string id = DetailsView1.DataKey.Value.ToString();
            SqlDataReader sdr = null;
            user getUser = new user();
            sdr = getUser.SelectRIDFromBorrow();
            while (sdr.Read())
            {
                if (id == sdr["RID"].ToString())
                {
                    return true;
                }
                //else
                //{
                    //return false;
                //}           
             }
             return false; //换到这个地方,暴露出来    }
      

  7.   


    zswang(伴水清清)(专家门诊清洁工) 正解
      

  8.   

    while()外面也需要一个return
      

  9.   

    谢谢各位大侠的提示!
    经过本人的一一测试
    其中hdt(倦怠) 、zswang(伴水清清)(专家门诊清洁工)、netusemaster() 是正确的。非常感谢大家,虽然这是一个小问题吧。
    必须得把while里的那个else也去掉。wei123456(onedotone)写的经过我测试,返回的好像永远都是false啊