注册 登录
编程论坛 ASP.NET技术论坛

[求助]request方式取值错误的问题

sam0802 发布于 2008-03-19 15:56, 1286 次点击
小弟最近做了个网站,遇到一些问题,希望大虾们赐教~~

情况如下:
图片列表页面 “list.aspx ”显示所有图片的缩略图,用了DATALIST,点击某个小图打开一个新页面“show.aspx?picid=XXX”页面显示大图,show.aspx通过picid来从数据库取图。

现在出现的问题:show.aspx用request["picid"]来获取参数,出现偶尔取对偶尔出错的情况。

例如用show.aspx?picid=333 打开,结果request["picid"]取的值竟然是222,刷新一下又可以了,有时要刷新几遍才行,有时候又十分正常,毫无规律。。。想到头大都解决不了问题

恳求各位帮忙分析下问题。

附上代码
 protected void Page_Load(object sender, EventArgs e)
{        
        if (Request["picid"]!=null)
        {
      img_picshow.Attributes.Add("OnLoad", "sizechange(this)");      
      showpic(); //显示图片
        }
        else
        {
            Response.Redirect("pic_list.aspx");
        }  
}

protected void showpic()
{
     if (Request["picid"] != null)
        {
            string strSQL ="SELECT tb_mypic.*, tb_user.username as v_username FROM tb_mypic INNER JOIN tb_user ON tb_mypic.userid = tb_user.userid where mypicid ="  + Request["picid"].ToString(); //关键在这里的Request["picid"],偶尔会取值出错
            DataSet ds = new DataSet();
            ds = GetDataSet(strSQL, "pic");
            img_picshow.ImageUrl = ds.Tables["pic"].Rows[0]["picurl"].ToString();
            lbl_pictitle.Text = ds.Tables["pic"].Rows[0]["title"].ToString();
            lbl_pictext.Text = ds.Tables["pic"].Rows[0]["pictext"].ToString();
            lbl_author.Text = ds.Tables["pic"].Rows[0]["v_username"].ToString();
            
        }
        else
        {
            Response.Write(MessageBox("非法操作"));
            Response.Redirect("pic_list.aspx");
        }

    }
5 回复
#2
beniao2008-03-19 15:59
改为Request.QueryString[]试试看
另外你需要为page_load()方法添加回传验证
if(!isPostBack)
{
   string sss=Request.QueryString[]....
}
#3
sam08022008-03-19 16:04
都加了,仍然出问题,出错几率大概是50%
#4
sam08022008-03-19 16:34
手工提前一下
#5
wyg48592008-03-19 16:36
没道理的错误,把ID打印出来查错!
#6
sam08022008-03-19 17:24
打印出来也是错的。。。。。
1