做了一个 修改已经上传音乐的页面。在写绑定信息是 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;
}
}
代码如下:
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;
}
}
_id = Request.QueryString["id"].ToString().Trim();
{
string _id = Request.QueryString["id"].ToString().Trim();
}
用3楼和5楼的方法,提示下面代码中为定义_id.
if (null != Request.QueryString["id"])
{
_id = Request.QueryString["id"].ToString().Trim();
}
那么你就在出错的前一个页面跳转之前把 Response.Redirect("xxx.aspx?id=" + xxx) xxx同学的值赋上就行了
这里说明忽略的问题:这里的朋友都很棒,想授人以渔,但问题是,请看这个问题的存在性就证明这里不需要渔只需要鱼,所以不见的对的东西就适合所有的情况,随口说两句哈。
它是null值吧判断一下 Request.QueryString["id"]!=null && Request.QueryString["id"].tostring()!=""
在本界面中判断是否为null或"" 如果是二者中的一个 说明没有值 没有值就没必要继续下面的代码了 直接跳出本页面(根据实际情况而定)