主题:ASP修改数据裤的出现BOF或EOF问题
wjkyo0000
[专家分:0] 发布于 2007-12-13 15:35:00
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="确认修改">
<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个回复)
沙发
wangsdong [专家分:21390] 发布于 2007-12-13 15:44:00
rs_s.open "select * from buyer where username='"&request.form("username")&"'",Conn,1,3
这句有问题,因为上一页没有username表单,只有buyername,所以这句话得不到信息,以致于下面修改出错。
板凳
wjkyo0000 [专家分:0] 发布于 2007-12-13 16:13:00
<input type="hidden" name="buyerid" value="<%=request.querystring("username")%>"> 这里提交的表单~ 而且吧USERNAME 改成 BUYERID这个参数就可以~~
[img]http://www.tillage.cn/1.jpg[/img] 数据库也没问题!
3 楼
wangsdong [专家分:21390] 发布于 2007-12-13 16:51:00
你没有理解我的意思
上一页中的代码是这个
<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 楼
a97191 [专家分:4040] 发布于 2007-12-13 23:54:00
没有username文本框
5 楼
wjkyo0000 [专家分:0] 发布于 2007-12-14 08:48:00
[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 楼
wangsdong [专家分:21390] 发布于 2007-12-14 08:59:00
简单地说,你用错表单名字了
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 楼
wjkyo0000 [专家分:0] 发布于 2007-12-14 09:20:00
我试了~~还是那个错误~~ 而且
<td width="30%" align="right" height="15">登陆帐号: </td>
<td width="70%" height="15"><%=trim(rs("username"))%></td>
这里也有USERNAME的表单了啊 USERNAME和BUYERNAME是2个不同的 USERNAME算是登陆名这样 而BUYERNAME是可以修改的昵称
所以表单名应该没错吧??? 不知道我的理解有没有错?
虽然还出错但还是先谢谢大哥指点先~~
8 楼
a97191 [专家分:4040] 发布于 2007-12-14 09:25:00
添加这条
<input type="hidden" name="username" value="<%=request.querystring("username")%>">
9 楼
wjkyo0000 [专家分:0] 发布于 2007-12-14 09:27:00
还有如果我把
换成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="确认修改">
<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 楼
wjkyo0000 [专家分:0] 发布于 2007-12-14 09:38:00
[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就可以了~~
是我太粗心了~~
我来回复