在asp中根据数据库里的记录条数循环的现实文本框,然后在依次保存到数据库 30
比如数据库里有5条记录,打开1.asp页面时,让提前设置好的1个文本框动态的循环显示5个文本框,然后从新输入数据,保存到数据库。我的问题是:数据能够依次显示在文本框里,但...
比如数据库里有5条记录,打开1.asp页面时,让提前设置好的1个文本框动态的循环显示5 个文本框,然后从新输入数据,保存到数据库。
我的问题是:数据能够依次显示在文本框里,但是保存数据时出错。错误代码是ADODB.Field (0x80020009)BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
我用的do while循环保存数据,能保存到数据库,但是最后出现以上错误代码。请高手指点。
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from qinggou where p_name='"&request("pc_name")&"'"
rs.open sql,conn,3,2
%>
<form action="?action=add&name=<%=rs("p_name")%>" method="post" name="form">
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="tablebk">
<tr class="table_trbg02" align="center">
<td height="30">工程名称</td>
<td><%=rs("p_name")%></td>
<td>请购人</td>
<td><%=rs("people")%></td>
<td>需用日期</td>
<td><%=rs("time")%></td>
<td>进场批次</td>
<td><%=rs("pici")%></td>
</tr>
<tr class="table_trbg02" align="center">
<td height="30">序号</td>
<td>名称</td>
<td>型号及规格</td>
<td>单位</td>
<td>数量</td>
<td>单价</td>
<td>金额</td>
<td>备注</td>
</tr>
<%
i=1
rs.movenext
do while not rs.eof
%>
<tr class="table_trbg02" align="center">
<td height="26"><%=i%></td>
<td><%=rs("c_name")%></td>
<td><%=rs("xinghao")%></td>
<td><%=rs("danwei")%></td>
<td><%=rs("number")%><input type="hidden" name="number<%=i%>" size="10" id="number" value="<%=rs("number")%>" onkeyup="total();"></td>
<td><input type="text" name="price<%=i%>" size="10" id="price" value="<%=rs("price")%>" onkeyup="total();" onblur="if(/[^0-9.]/g.test(this.value)){alert('本项只能输入整数或小数!');this.value=1;price.focus();}"></td>
<td><input type="text" name="jine<%=i%>" size="13" id="jine" value="<%=rs("jine")%>" readonly></td>
<td><%=rs("beizhu")%></td>
</tr>
<%
rs.movenext
i=i+1
loop
rs.close
set rs=nothing
%>
<tr class="table_trbg02" align="center">
<td colspan="8" height="40"><input type="submit" name="Submit" value="完 成"> <input type="button" name="Submit" value="返 回" onClick="javascript:history.back(-1);">
</td>
</tr>
</table>
</form>
<%
if request("action")="add" then
set rs=server.CreateObject("adodb.recordset")
sql="select p_name,wancheng,price,jine from qinggou where p_name='"&request("name")&"'"
rs.open sql,conn,1,3
rs("wancheng")=1
rs.movenext
if rs.bof and rs.eof then
response.Write("不能添加")
else
j=1
do while not rs.eof
rs("price")=request.Form("price"&cstr(j))
rs("jine")=request.Form("jine"&cstr(j))
rs.update
rs.movenext
j=j+1
loop
end if
rs.close
set rs=nothing
response.Write("<script language='javascript'> alert('您已完成本次采购报价!');window.location.href='qinggou_04.asp';</script>")
end if
%> 展开
我的问题是:数据能够依次显示在文本框里,但是保存数据时出错。错误代码是ADODB.Field (0x80020009)BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
我用的do while循环保存数据,能保存到数据库,但是最后出现以上错误代码。请高手指点。
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from qinggou where p_name='"&request("pc_name")&"'"
rs.open sql,conn,3,2
%>
<form action="?action=add&name=<%=rs("p_name")%>" method="post" name="form">
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="tablebk">
<tr class="table_trbg02" align="center">
<td height="30">工程名称</td>
<td><%=rs("p_name")%></td>
<td>请购人</td>
<td><%=rs("people")%></td>
<td>需用日期</td>
<td><%=rs("time")%></td>
<td>进场批次</td>
<td><%=rs("pici")%></td>
</tr>
<tr class="table_trbg02" align="center">
<td height="30">序号</td>
<td>名称</td>
<td>型号及规格</td>
<td>单位</td>
<td>数量</td>
<td>单价</td>
<td>金额</td>
<td>备注</td>
</tr>
<%
i=1
rs.movenext
do while not rs.eof
%>
<tr class="table_trbg02" align="center">
<td height="26"><%=i%></td>
<td><%=rs("c_name")%></td>
<td><%=rs("xinghao")%></td>
<td><%=rs("danwei")%></td>
<td><%=rs("number")%><input type="hidden" name="number<%=i%>" size="10" id="number" value="<%=rs("number")%>" onkeyup="total();"></td>
<td><input type="text" name="price<%=i%>" size="10" id="price" value="<%=rs("price")%>" onkeyup="total();" onblur="if(/[^0-9.]/g.test(this.value)){alert('本项只能输入整数或小数!');this.value=1;price.focus();}"></td>
<td><input type="text" name="jine<%=i%>" size="13" id="jine" value="<%=rs("jine")%>" readonly></td>
<td><%=rs("beizhu")%></td>
</tr>
<%
rs.movenext
i=i+1
loop
rs.close
set rs=nothing
%>
<tr class="table_trbg02" align="center">
<td colspan="8" height="40"><input type="submit" name="Submit" value="完 成"> <input type="button" name="Submit" value="返 回" onClick="javascript:history.back(-1);">
</td>
</tr>
</table>
</form>
<%
if request("action")="add" then
set rs=server.CreateObject("adodb.recordset")
sql="select p_name,wancheng,price,jine from qinggou where p_name='"&request("name")&"'"
rs.open sql,conn,1,3
rs("wancheng")=1
rs.movenext
if rs.bof and rs.eof then
response.Write("不能添加")
else
j=1
do while not rs.eof
rs("price")=request.Form("price"&cstr(j))
rs("jine")=request.Form("jine"&cstr(j))
rs.update
rs.movenext
j=j+1
loop
end if
rs.close
set rs=nothing
response.Write("<script language='javascript'> alert('您已完成本次采购报价!');window.location.href='qinggou_04.asp';</script>")
end if
%> 展开
展开全部
看这里,
中间那
rs.movenext 是光标一道下一行
rs.movefirst 才是光标移到首位
你用错了,应给在刚刚载入数据库是用rs.movefirst
否则刚开始的时候用光标就是在最后,用movenext便出现了错误
<%
i=1
rs.movenext
do while not rs.eof
%>
还有下面修改的那个也错了
rs.open sql,conn,1,3
rs("wancheng")=1
rs.movenext
if rs.bof and rs.eof then
response.Write("不能添加")
else
j=1
也要改成rs.movefirst
中间那
rs.movenext 是光标一道下一行
rs.movefirst 才是光标移到首位
你用错了,应给在刚刚载入数据库是用rs.movefirst
否则刚开始的时候用光标就是在最后,用movenext便出现了错误
<%
i=1
rs.movenext
do while not rs.eof
%>
还有下面修改的那个也错了
rs.open sql,conn,1,3
rs("wancheng")=1
rs.movenext
if rs.bof and rs.eof then
response.Write("不能添加")
else
j=1
也要改成rs.movefirst
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询