| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 952 人关注过本帖
标题:asp 批量修改sql数据不成功, checkbox 取值错误
只看楼主 加入收藏
zhongyan43
Rank: 1
等 级:新手上路
帖 子:7
专家分:3
注 册:2010-12-8
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:2 
asp 批量修改sql数据不成功, checkbox 取值错误
以下代码可以运行,但批量修改数据不成功,不知错误在哪里,请问该怎样改

数据库表名: web_childdorders

数据库结构:

orderid        Shopid        C_state
123          abc          1
456          abc          1
789          def          1


<!--#include file=include.asp-->
<%
Response.Buffer = True
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"

set rss=server.CreateObject("adodb.recordset")
sqls="select * from web_childorders Where Shopid='"&request.cookies("kkshopid")&"'"
rss.open sqls,conn,1,3
%>

<form name="orderChange" method="post" action="?act=update">
<table border="1" width="100%" id="table1">

<tr> <td>
<input type="submit" name="Submit3" value="Submit" onClick="return confirm('Confirm ?');">
</td></tr>
<tr> <td>Item Number</td> </tr>

<%
do while not rss.eof
    if rss("C_state")>0 then
%>
<tr><td><input type=checkbox name="ck" value=<%=rss("orderid")%>> <%=rss("orderid")%> </td></tr>
<%
    End if
    rss.movenext
loop
%>
</table>
</form>

<%
if request("act")="update" and request("ck")<>"" then

    ''第一种方法,改不了任何数据
     ''conn.execute("update web_childorders set C_state=6 where orderid in ('"&request("ck")&"')")

''第二种方法,只能改第一个数据
pid=request("ck")
mystr=split(pid,",")
for i=0 to ubound(mystr)
exec="update web_childorders set C_state=6 where orderid ='"&mystr(i)&"'"
conn.execute(exec)

''用response.write 会显示正确的记录
response.write (mystr(i)&"<br>")

next
    response.write("Records has been updated")
end if

''第三种方法,成功批量修改数据库
''conn.execute("update web_childorders set C_state=6 where orderid in ('1011042253179022','10112810593074851')")

set rss=nothing
conn.close
set conn = Nothing
%>



另外去掉单引号
conn.execute("update web_childorders set C_state=6 where orderid in ("&request("ck")&")")
会出现

An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about this error.


不知道是不是
<tr><td><input type=checkbox name="ck" value=<%=rss("orderid")%>> <%=rss("orderid")%> </td></tr>
取的是数字,而数据库里的是字符而出现问题?
搜索更多相关主题的帖子: 数据 asp 批量 sql checkbox 
2010-12-10 09:18
markjet
Rank: 2
等 级:论坛游民
帖 子:14
专家分:19
注 册:2010-6-5
收藏
得分:5 
我看不懂!


[fly] 若有恒,何须三更眠五更起,最无益,莫过一日曝十日寒[/fly]
2010-12-17 17:39
kira007
Rank: 2
等 级:论坛游民
帖 子:294
专家分:27
注 册:2007-6-28
收藏
得分:5 
第二种方法修改

exec = "update web_childorders set C_state=6 where orderid ='"&mystr(i)&"'"
改为
sql="update web_childorders set C_state=6 where orderid ='"&Cint(Trim(mystr(i)))&"'"
conn.execute(sql)

注意 1. exec 是关键字,尽量不要用。 2.用你的获取同名表单元素方法,值都是用中文逗号隔开的,所以分割时要注意分隔符号。


生活的理想,就是为了理想的生活。
2010-12-17 17:51
快速回复:asp 批量修改sql数据不成功, checkbox 取值错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024635 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved