当前位置:编程学习 > C#/ASP.NET >>

【Request.QueryString 获取参数值为 null】急,在线等!高手给看看啊

protected void show_lib()
  {
  string cid = Request.QueryString["cid"];
  string strconn = ConfigurationSettings.AppSettings["strconn"];
  SqlConnection conn = new SqlConnection(strconn);
  string strsql = "select * from View_lib_report where Cid='" + cid + "' and Sid='" + Session["stuID"] + "'";
  SqlCommand cmd = new SqlCommand(strsql, conn);
  try
  {
  conn.Open();
  SqlDataReader sda = cmd.ExecuteReader();
  while (sda.Read())
  {
  this.lbname.Text = sda.GetValue(1).ToString();
  this.lbmajor.Text = sda.GetValue(3).ToString();
  this.lbgrade.Text = sda.GetValue(2).ToString();
  this.lbClass.Text = sda.GetValue(4).ToString();
  this.ddlTitle.Items.Add(sda.GetValue(6).ToString());
  this.ddlTeacher.Items.Add(sda.GetValue(7).ToString());
  this.TextArea1.Value = sda.GetValue(8).ToString();
  this.Textarea2.Value = sda.GetValue(9).ToString();
    
  }
  }
  catch
  {
  return;
  }
  finally
  {
  cmd.Dispose();
  conn.Close();
  }
  } --------------------编程问答--------------------
上个帖子不是给你说了吗?

做非空判断。。。

--------------------编程问答--------------------
引用 1 楼 porschev 的回复:
上个帖子不是给你说了吗?

做非空判断。。。

不好使啊!还是那样··· --------------------编程问答-------------------- 使用request["cid"]
1.Request.Form:获取以POST方式提交的数据(接收Form提交来的数据);   2.Request.QueryString:获取地址栏参数(以及以GET方式提交的数据)   3.Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。   而且有时候也会得到不同的结果。如果你仅仅是需要Form中的一个数据,但是你使用了Request而不是Request.Form,那么程序将在QueryString、ServerVariable中也搜寻一遍。如果正好你的QueryString或者ServerVariable里面也有同名的项,你得到的就不是你原本想要的值了。

要养成习惯,最起码为了网页的完整,你也得加上NULL处理呀。呵呵

if(cid==null)
{

}
else
{

}

--------------------编程问答-------------------- 如果你传过来是null的,无论怎样都不妥啊,应该考虑的是为什么传过来是null了,....aspx?cid="2" ,这种形式写对了没
。做非空值判断也只能给cid一个默认值而已 --------------------编程问答-------------------- LZ能不能把问题说得详细点啊~ --------------------编程问答--------------------
引用 4 楼 w_f_y4422 的回复:
如果你传过来是null的,无论怎样都不妥啊,应该考虑的是为什么传过来是null了,....aspx?cid="2" ,这种形式写对了没
。做非空值判断也只能给cid一个默认值而已

有啊,aspx?cid=20070002
--------------------编程问答-------------------- 你这个CID可以传过来值,你先把Try{}catch{}这个去掉,你看错误到底出现在哪,或者是,你先一步一步的来测试,先检测是否收到CID的值,然后再查询表什么的。
    protected void Page_Load(object sender, EventArgs e)
    {
        string cid = Request.QueryString["cid"];
        Response.Write(cid);
    }
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,