一、OleDbParameter次序问题
OleDbParameter[] op ={
                                new OleDbParameter("@id",id),
                                new OleDbParameter("@contentWord",contentWord),
                                new OleDbParameter("@nickName",nickName),
                                new OleDbParameter("@reContent",reContent),
                                new OleDbParameter("@reTime",reTime.ToString())
                                 
                            };
        Helper.ExecuteNonQuery("update NoteList set contentWord=@contentWord,nickName=@nickName,reContent=@reContent,reTime=@reTime where id=@id", op);
今天这段代码死活不成功!!,搞了一整天,终于发现op参数顺序应该与sql语句内@参数顺序一致,否则无法执行!!
即将上面代码顺序改为:
new OleDbParameter("@contentWord",contentWord),
new OleDbParameter("@nickName",nickName),
new OleDbParameter("@reContent",reContent),
new OleDbParameter("@reTime",reTime.ToString()),
new OleDbParameter("@id",id)
即可,我的娘唉!!搞出来恨不得砸电脑.该死的ms!!!
请教:SqlParameter没有顺序要求,为什么oledb有顺序要求,原因何在?二\关于获取上一页代码的问题:
code source:
有一页面为adminWord.aspx,当前页的完整路径为:192.168.3.10/admin/adminWord.aspx?page=3,页面中的代码如下:
<a href="AdminReWord.aspx?id=<%#Eval("id") %>">回复留言</a>
当我单击该链接跳转到adminReowrd.aspx页进行留言回复.
protected void BtnReWord_Click(object sender, EventArgs e)
    {
      ...//回复留言的代码
      Response.Redirect(Request.UrlReferrer);  //跳转到前一页的代码
    }
这个Request.UrlReferrer获取的则是当前页的地址,该如何在点击BtnReWord按钮时时跳转到192.168.3.10/admin/adminWord.aspx?page=3这一页(即上一页面)请大家赐教!!

解决方案 »

  1.   

    对于SqlServer来说支持命名参数,而其它的数据库,对于参数来说只是个“占位符”,这需要参数的位置和值的位置要一致。这在MSDN里有说明的。
      

  2.   

    MSDN片段:
    OLE DB .NET 提供程序使用标有问号 (?) 的定位参数,而不使用命名参数。
      

  3.   

    adminWord.aspx
    <a   href="AdminReWord.aspx?id= <%#Eval("id")&wid=3   %> ">dminReowrd.aspx
    ...//回复留言的代码
                Response.Redirect("/admin/adminWord.aspx?page="+Request.QueryString["wid"]);