修改多条记录ASP

<tablealign="center"cellpadding="4"cellspacing="1"class="toptablegrid"border="1"><trc... <table align="center" cellpadding="4" cellspacing="1" class="toptable grid" border="1">
<tr class="category" align="center">
<td >订单编码</td>
<td >产品名称</td>
<td >货号</td>
<td >数量</td>
<td >进货价</td>
<td >选择仓库</td>

</tr>
<% set rs_buy=conn.execute("select * from sell where zu=false and bianhao='"&request("bianhao")&"' ")
x=0
do while not rs_buy.eof
x=x+1 %>
<tr align="center">
<td><input type="text" name="bianhao" style="width:160px" value="<%=rs_buy("bianhao")%>"></td>
<td><input type="text" name="title" style="width:160px" value="<%=rs_buy("title")%>">
</td>
<td><input type="text" name="huohao" style="width:100px" value="<%=rs_buy("huohao")%>">
</td>
<td><input type="text" name="shulian" style="width:100px" value="<%=rs_buy("shulian")%>">
</td>
<td><input type="text" name="price2" style="width:100px" >
</td>
</tr>
<%

rs_buy.movenext
loop
%>
</table>
以下是修改代码
<%nowshulian=request("shulian")
nowprice2=request("price2")
nowtitle=request("title")
set rs=server.createobject("ADODB.RecordSet")
rs.open"select * from sell where zu=false and bianhao='"&request("bianhao")&"'",conn,1,3
xx=0
do while not rs.eof
xx=xx+1
rs("shulian")=nowshulian
rs("price2")=nowprice2
rs("selldate")=date()
rs("type")=4
rs.update
rs.movenext
loop
rs.close
set rs=nothing %>
<script language="javascript">
alert("产品入库成功!")
</script>
提示产品入库成功但是,数据并没有修改
哪位大哥,帮帮我
提示Provider 错误 '80020005'

类型不匹配。

/produit/produit_add111.asp,行 280
行280rs("shulian")=nowshulian
rs("price2")=nowprice2
rs("selldate")=date()
这些都会提示这样的错误
我已经查过了,数据类型都是匹配的
展开
 我来答
ivanzxy
2010-10-15 · TA获得超过1166个赞
知道小有建树答主
回答量:284
采纳率:100%
帮助的人:362万
展开全部
提示产品入库成功?
alert("产品入库成功!")你这里写什么字就提示什么字。跟你的asp代码毫无关系。

回答补充:
类型不匹配。是因为你的数据库字段结构类型跟你的数据类型不匹配。
比如你的数据库字段结构类型为数字,插入文本内容就会造成这样的错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
byer520
推荐于2016-02-21 · 超过23用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:54.1万
展开全部
你对页面传送的数据并没有检查,在produit_add111.asp你只是想当然的赋值过去,所以发生了错误。

思路上出了问题

do while not rs_buy.eof
x=x+1 %>
<tr align="center">
<td><input type="text" name="bianhao" style="width:160px" value="<%=rs_buy("bianhao")%>"></td>
<td><input type="text" name="title" style="width:160px" value="<%=rs_buy("title")%>">
</td>
<td><input type="text" name="huohao" style="width:100px" value="<%=rs_buy("huohao")%>">
</td>
<td><input type="text" name="shulian" style="width:100px" value="<%=rs_buy("shulian")%>">
</td>
<td><input type="text" name="price2" style="width:100px" >
</td>
</tr>
<%

rs_buy.movenext
loop

注意,你这里代码生成文本框,bianhao,title,huohao,shulian,price2这些都是成为了控件组。

在你向produit_add111.asp传送数据的时候

实际上它的数据是下面的形式,如
bianhao控件组传过来的应该是

bianhao1,bianhao2,bianhao3,....

是用","逗号隔开的文本型数据,不是你想像的

rs("shulian")=nowshulian
rs("price2")=nowprice2
rs("selldate")=date()

这样就能一个个按你的要求循环赋值,循环更新给你,这样的程序赋不了值的。

由于你生成的各个控件组传递过来的数据是用逗号隔开的文本型
那建议思路是这样

使用split函数对传递过来的值进行处置,把每个控件组的控件值使用数组保存起来,然后通过数据下标的移动,读取已经写入数据组的值,最后保存进数据库里面。

我对你的程序进行了更改

<%
bianhao=split(request("bianhao"),",")
nowshulian=split(request("shulian"),",")
nowprice2=split(request("price2"),",")
nowtitle=split(request("title"),",")
set rs=server.createobject("ADODB.RecordSet")
for i=0 to Ubound(bianhao)-1
rs.open "select * from sell where zu=false and bianhao='"&bianhao(i)&"'",conn,1,3
rs("shulian")=nowshulian(i)
rs("price2")=nowprice2(i)
rs("selldate")=date()
rs("type")=4 '这里不应该这样赋值,应该是rs("type")="4"
rs.update
next
rs.close
set rs=nothing

'下面的javascript程序没有意义,应该使用流程控制语句来控制是要执行
%>
<script language="javascript">
alert("产品入库成功!")
</script>

由于没办法测试你的数据,请你测试,主要是理顺数据处理的思路

QQ:249282902
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神爱墨迹
2010-10-14 · 超过54用户采纳过TA的回答
知道答主
回答量:298
采纳率:0%
帮助的人:162万
展开全部
太乱了 代码不完整 看不明白
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式