回 帖 发 新 帖 刷新版面

主题:ASP修改数据裤的出现BOF或EOF问题

vipgyjc.asp

<!--#include file="conn.asp"-->
<%
set rs=server.createobject("adodb.recordset")
rs.open "SELECT * FROM buyer WHERE buyer.username='"&request.querystring("username")&"' ",conn,1,1
%> 
<div align="center">
<td valign="top" bgcolor="#FfFfFf" width="524" height="484" rowspan="2"><table width="80%" border="1" cellpadding="4" cellspacing="0"  align=right  height="552">
    <tr><td colspan=2 height="16"><b>以下为基本资料:</b></td></tr>
    <form action="vipedit.asp" method="post" name="form1" id="form1">
        <tr> 
            <td width="30%" align="right" height="15">登陆帐号: </td>
          <td width="70%" height="15"><%=trim(rs("username"))%></td>
        </tr>
        <tr> 
            <td align="right" height="23">真实姓名: </td>
          <td height="23"><input type="text" name="buyername" value="<%=trim(rs("buyername"))%>" maxlength="16" ></td>
        </tr>
<tr><td colspan=2 align=center height="25"> 
      <input type="submit" name="Submit" value="确认修改">&nbsp;&nbsp;&nbsp;&nbsp;       
      <input name="Submit2" type="reset" value="重新填写">
      <input type="hidden" name="buyerid" value="<%=request.querystring("username")%>">
      </td>
    </tr>
        <td height="10"></form>        
    </table></td>
      <td width="30" height="484" rowspan="2"></td>
    </tr>
    <tr>
      <td height="299" colspan="2"></td>
    </tr>
  </table>
</div>



vipedit.asp



<!--#include file="conn.asp" -->

<%
set rs_s=server.CreateObject("adodb.recordset")
rs_s.open "select * from buyer where username='"&request.form("username")&"'",Conn,1,3
rs_s("buyername")=request.form("buyername")    //行9

ADODB.Recordset 错误 '800a0bcd' 

BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。 

/tillage/vipedit.asp,行9 

rs_s.Update
username=request.form("username")
response.Redirect "vipgyjc.asp?username="&username&""
rs.Close
rs_s.Close
conn.Close
set rs=Nothing
set rs_s=Nothing
set conn=Nothing
%>  
如果我把USERNAME(文本)换成BUYERID(数字)又可以~ 初学ASP 请高手帮忙看看~~
万般感谢!

回复列表 (共10个回复)

沙发

rs_s.open "select * from buyer where username='"&request.form("username")&"'",Conn,1,3
这句有问题,因为上一页没有username表单,只有buyername,所以这句话得不到信息,以致于下面修改出错。

板凳

<input type="hidden" name="buyerid" value="<%=request.querystring("username")%>"> 这里提交的表单~ 而且吧USERNAME 改成 BUYERID这个参数就可以~~

[img]http://www.tillage.cn/1.jpg[/img] 数据库也没问题!

3 楼

你没有理解我的意思
 上一页中的代码是这个
 <td align="right" height="23">真实姓名: </td>
          <td height="23"><input type="text" name="buyername" value="<%=trim(rs("buyername"))%>" maxlength="16
而提交后,你用
username=request.form("username") '这里这个username从什么地方来的
response.Redirect "vipgyjc.asp?username="&username&""

4 楼

没有username文本框

5 楼

[quote]你没有理解我的意思
 上一页中的代码是这个
 <td align="right" height="23">真实姓名: </td>
          <td height="23"><input type="text" name="buyername" value="<%=trim(rs("buyername"))%>" maxlength="16
而提交后,你用
username=request.form("username") '这里这个username从什么地方来的
response.Redirect "vipgyjc.asp?username="&username&""
[/quote]
其实我也不知道从哪里来的~~   不过可以得到USERNAME这个参数没错啊~~~ 这2句只是修改回返回原来的页面,就算我删掉后也一样出那个错误啊~~~
   如果我把[color=800000]USERNAME[/color] 换成BUYERID后就可以了啊~~~ 这又为什么啊?

6 楼

简单地说,你用错表单名字了

vipedit.asp
<!--#include file="conn.asp" -->
<%
set rs_s=server.CreateObject("adodb.recordset")

rs_s.open "select * from buyer where username='"&request.form("username")&"'",Conn,1,3
上面这句改成
rs_s.open "select * from buyer where username='"&request.form("buyername")&"'",Conn,1,3
这样就可以了

7 楼

我试了~~还是那个错误~~ 而且
<td width="30%" align="right" height="15">登陆帐号: </td>
          <td width="70%" height="15"><%=trim(rs("username"))%></td>
这里也有USERNAME的表单了啊 USERNAME和BUYERNAME是2个不同的 USERNAME算是登陆名这样 而BUYERNAME是可以修改的昵称
所以表单名应该没错吧??? 不知道我的理解有没有错?

虽然还出错但还是先谢谢大哥指点先~~

8 楼

添加这条
<input type="hidden" name="username" value="<%=request.querystring("username")%>">

9 楼

还有如果我把
 换成BUYERID这样又可以了哦~~

vipgyjc.asp

<!--#include file="conn.asp"-->
<%
set rs=server.createobject("adodb.recordset")
rs.open "SELECT * FROM buyer WHERE buyer.[size=5]buyerid[/size]="&request.querystring("[size=5]buyerid[/size][/size]"),conn,1,1
%> 
<div align="center">
<td valign="top" bgcolor="#FfFfFf" width="524" height="484" rowspan="2"><table width="80%" border="1" cellpadding="4" cellspacing="0"  align=right  height="552">
    <tr><td colspan=2 height="16"><b>以下为基本资料:</b></td></tr>
    <form action="vipedit.asp" method="post" name="form1" id="form1">
        <tr> 
            <td width="30%" align="right" height="15">登陆帐号: </td>
          <td width="70%" height="15"><%=trim(rs("username"))%></td>
        </tr>
        <tr> 
            <td align="right" height="23">真实姓名: </td>
          <td height="23"><input type="text" name="buyername" value="<%=trim(rs("buyername"))%>" maxlength="16" ></td>
        </tr>
<tr><td colspan=2 align=center height="25"> 
      <input type="submit" name="Submit" value="确认修改">&nbsp;&nbsp;&nbsp;&nbsp;       
      <input name="Submit2" type="reset" value="重新填写">
      <input type="hidden" name="buyerid" value="<%=request.querystring("[size=5]buyerid[/size]")%>">
      </td>
    </tr>
        <td height="10"></form>        
    </table></td>
      <td width="30" height="484" rowspan="2"></td>
    </tr>
    <tr>
      <td height="299" colspan="2"></td>
    </tr>
  </table>
</div>



vipedit.asp



<!--#include file="conn.asp" -->

<%
set rs_s=server.CreateObject("adodb.recordset")
rs_s.open "select * from buyer where buyerid="&request.form("[size=5]buyerid[/size]"),Conn,1,3
rs_s("buyername")=request.form("buyername")    //行9
rs_s.Update
buyerid=request.form("buyerid")
response.Redirect "vipgyjc.asp?buyerid="&buyerid&""
rs.Close
rs_s.Close
conn.Close
set rs=Nothing
set rs_s=Nothing
set conn=Nothing
%>  
 麻烦大哥了

10 楼

[quote]添加这条
<input type="hidden" name="username" value="<%=request.querystring("username")%>">
[/quote]
 谢谢这位大哥~~ 终于找到哪里错了~~  是我这里
<input name="Submit2" type="reset" value="重新填写">
      <input type="hidden" name="buyerid" value="<%=request.querystring("username")%>">
写错了~~ 把这个BUYERID 改成USERNAME就可以了~~
 是我太粗心了~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册