修改多条记录ASP

<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()
这些都会提示这样的错误
我已经查过了,数据类型都是匹配的

第1个回答  2010-10-15
提示产品入库成功?
alert("产品入库成功!")你这里写什么字就提示什么字。跟你的asp代码毫无关系。

回答补充:
类型不匹配。是因为你的数据库字段结构类型跟你的数据类型不匹配。
比如你的数据库字段结构类型为数字,插入文本内容就会造成这样的错误。
第2个回答  推荐于2016-02-21
你对页面传送的数据并没有检查,在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本回答被提问者采纳
第3个回答  2010-10-14
太乱了 代码不完整 看不明白

asp程序中,怎样将多条记录同时修改?
update 表名 set 项名=值 where 你的条件 比如要更新xiaoxi表中的全部的shifouyidu项,值为yes,则 update xiaoxi set shifouyidu=yes 就上面更改的是同一个值的情况 不同值的话,在你的查询循环你赋值一个i=1,在next的地方i=i+1 比如工资,则,工资的name=gz<%=i%> 这样,更新数据的时...

ASP 一次提交修改多条记录
for i=1 to Request.form("id").count id=Request.form("id")(i)Set rs= Server.CreateObject("ADODB.Recordset")sql="select * from cn_Graphic where id="&id rs.open sql,conn,1,3 rs("BImg")="B\/"&rs("BImg")rs.update rs.close set rs=nothing next 选中所有的信息.用这个处...

ASP同时更新多条记录
用update 语句设置更新条件,可更新一条或多条或全部数据.像你这样的情况,可以用asp的while循环执行Update语句更新数据.

asp怎么样同时更新多条记录就像那种同时选中多个复选框删除那样。_百度...
如果是插入可以使用类似 insert into table2 (select * from table1 where 条件)的格式插入,你只要加个where id in()的条件就好说了 2008年6月26日17:12:37追加 sql语句不对,不过的确有这个方法 2008年6月26日17:14:13追加 INSERT INTO [t3] (dd) (select dd from t2 where t2.id<4)...

ASP如何批量修改多个字段值
你这种方法只适用于数据量小的时候,如果数据量一大,IIS就很容易卡死,鉴于这咱情况,你最好按xid升序或者降序排序,每次取前500条(或者1000条,这个需要根据你服务器配置来定),假设为升序排序,当取得的数据更新完后,再取大于第一次所取数据的最大ID的前500条数据更新,依次类推,起到数据更新...

asp 如何同时修改两条记录
您说的不是很清楚:UPDATE table SET a='A', b='B' WHERE ………若同时修改二个表的数据:UPDATE tableA SET a='A', b='B' WHERE ………UPDATE tableB SET a='A', b='B' WHERE ………这样的格式。建议您多看看SQL操作方便的资料!

高手帮忙看个ASP批量修改问题吧
如果要批量修改至少应该有个循环条件吧,你的循环条件是有了,但是你的update改来改去不都是改的pjz='"&session("userid")&"'这一条记录?拜托!session("userid")相当于一个变量,不可能同时有N多条,如果你这样写的:session("userid")="d"session("userid")="a"那么最后session("userid"...

asp+access 添加多条记录+更新记录
你少写了一个end if < set rsp=server.createobject("adodb.recordset")sql="select * from P_Queue where CardNo='"&rs("CardID")&"' and PassWord='"&rs("PassWord")&"'"rsp.open sql,conn,1,3 if rsp.eof and rsp.bof then CardID=rs("ID")CardType=rs("ClassID")CardNo=...

ASP关于批量修改数据并更新的问题,谢谢。
do while not (rs.bof or rs.eof) --> do while not rs.eof bookname="你好" --- > rs("bookname")="你好"没有错误信息,只能推测

asp从一表里调用的多条数据,批量添加到另一个表里
哦,你要在修改表单后面加一个隐藏的文本框,name设置为一样的,里面记录数据库ID,而下面的修改数据也可以设置为同名的NAME。你这个的话,把表单提交后使用request("")获得表单数据,因为同名的NAME获得的多个表单数据自动用逗号区分的,这样就可以用数组来循环取出,最后就可以循环修改了 ...

相似回答