做了一个 修改已经上传音乐的页面。在写绑定信息是 string _id = Request.QueryString["id"].ToString().Trim();这句总是提示 未将对象引用设置到对象的实例。请问怎么解决。
代码如下:
protected void PageInit()
    {
        string _id = Request.QueryString["id"].ToString().Trim();        _id = BasePage.CheckStr(_id);
        tbMusicDal tbMusicDal1 = new tbMusicDal();
        DataSet ds1 = tbMusicDal1.GetList(string.Format("id={0}", _id));
        if(ds1.Tables[0].Rows.Count > 0)
        {
            DataRow dr = ds1.Tables[0].Rows[0];
            tbName.Text = dr["Name"].ToString().Trim();
            tbGroupName.Text = dr["Name"].ToString().Trim();
            tbAuthors.Text = dr["Authors"].ToString().Trim();
            tbLyrics.Text = dr["Contents"].ToString().Trim();
            lb_path.Text = dr["MusicUrl"].ToString().Trim();
            //绑定下拉列表
            string strSql = "select * from tbMusicClass";
            SqlDataAdapter sda = new SqlDataAdapter(strSql, BasePage.GetConn());
            DataSet ds = new DataSet();
            sda.Fill(ds, "tbMusicClass");
            string _html = "<select id=\"selectClass\" name=\"selectClass\">";
            foreach (DataRow draaa in ds.Tables[0].Rows)
            {
                if (dr["ParentId"].ToString().Trim() == draaa["id"].ToString().Trim())
                {
                    _html += string.Format("<option value=\"{0}\" selected=\"selected\">{1}</option>", draaa["id"].ToString(), draaa["ClassName"].ToString());
                }
                else
                {
                    _html += string.Format("<option value=\"{0}\">{1}</option>", draaa["id"].ToString(), draaa["ClassName"].ToString());
                }
            }
            _html += "</select>";
            ltr_class.Text = _html;
        }
    }

解决方案 »

  1.   

    string _id =string.Empty;        if (!string.IsNullOrEmpty(Request.QueryString["id"]))
                _id = Request.QueryString["id"].ToString().Trim();
      

  2.   

    if (Request.QueryString["id"] != null)
      

  3.   

    判断一下if (null != Request.QueryString["id"])
    {
       string _id = Request.QueryString["id"].ToString().Trim(); 
    }
      

  4.   

    用2楼的方法,会提示DbHelperSQL.cs文件里 trow new Exceptiong(ex.message);这句  用户代码为处理  Exception.
    用3楼和5楼的方法,提示下面代码中为定义_id.
      

  5.   

    string _id=string.Empty;
    if (null != Request.QueryString["id"])
    {
      _id = Request.QueryString["id"].ToString().Trim();  
    }
      

  6.   

    其实上面的都忽略了一个问题 Request.QueryString["id"] 为null  
    那么你就在出错的前一个页面跳转之前把 Response.Redirect("xxx.aspx?id=" + xxx) xxx同学的值赋上就行了
    这里说明忽略的问题:这里的朋友都很棒,想授人以渔,但问题是,请看这个问题的存在性就证明这里不需要渔只需要鱼,所以不见的对的东西就适合所有的情况,随口说两句哈。
      

  7.   

     要么先判断Request.QueryString["id"]是否等于空。要么就直接写成string _id = Request.QueryString["id"]
      

  8.   

    在上一页面已经写了〈a href="MusicEdit.aspx?id=〈%#Eval("id") %〉"〉这句来跳转
      

  9.   

    string _id =Request.QueryString["id"]??string.Empty;
      

  10.   

    Request.QueryString["id"].ToString().Trim(); 
    它是null值吧判断一下 Request.QueryString["id"]!=null && Request.QueryString["id"].tostring()!=""
      

  11.   

    你可能有两个地方要改,一个就是判断,一个就是看你传值过来的页面参数名是不是写错了或是没用&符号
      

  12.   

    看看你在前一个界面是否赋值成功了? 
    在本界面中判断是否为null或"" 如果是二者中的一个 说明没有值 没有值就没必要继续下面的代码了 直接跳出本页面(根据实际情况而定)