我刚学习 asp.net 不久遇到一个问题,请给予指点,非常感谢! 
          我正在做一个BBS ,非常简单的那种,但是在使用string strPostid=request["postid"].tostring();的时候strPostid 的值是nullprotected void Page_Load(object sender, EventArgs e) 
    { 
        if ( Request["postid"] != null) 
        {             strPostID = Request.q["postid"].ToString(); 
        } 
        
        strUserID = Session["userid"].ToString(); 
        strIP = Request.UserHostAddress.ToString(); 
        
        strMessage = this.tbReply.Text; 
        
        strReplyTime = DateTime.Now.ToString(); 
      
    } 以上是我出错的程序,其错误在于 strPostID =request["postid"].tostring()中; strPostID 获得的值总是null,而 
sttPostID要向一个表的外键插值所以总是外键错误,但是我不知道为什么strPostID得到的值总是空的!! 
请各位帮帮忙谢谢 
;

解决方案 »

  1.   

    你可以单步调试一下吧.不然这样别人也很难帮你解决.看一下是不是Request["postid"]一直是null,没有执行下边的赋值操作
      

  2.   

    呃...没看出有问题...
    Request.q["postid"].ToString();
    这里应该是你打错了吧...
    如果Request["postid"]为空的话...按照你写的...strPostID就是空了...
    插入数据库前...也应该判断一下strPostID是否为空...建议断点+监视...好好看看Request.["postid"].ToString();
      

  3.   

    改了下 看看可以不
       
       protected void Page_Load(object sender, EventArgs e) 
        { 
            string strPostID =string.empty;
            if (!string.IsNullOrEmpty(Request["postid"])) 
            { 
                strPostID = Request["postid"].ToString(); 
            } else
            {
              strPostID ="-1"; //控制好如果为空怎么搞
            }
            
            strUserID = Session["userid"].ToString(); 
            strIP = Request.UserHostAddress.ToString(); 
            
            strMessage = this.tbReply.Text; 
            
            strReplyTime = DateTime.Now.ToString(); 
          
        }