| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1760 人关注过本帖
标题:[求助]表单批量数据批量修改数据库(在线等),请帮忙
只看楼主 加入收藏
elly20
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-7-30
收藏
 问题点数:0 回复次数:3 
[求助]表单批量数据批量修改数据库(在线等),请帮忙

表单页代码如下: <%do while not rs2.eof%> <tr bgcolor=#222222> <td><%=rs2("nickname")%></td> <td><%=rs2("qq")%></td> <td><%=rs2("round"&session("previousround")&"team")%></td> <td><%=rs2("round"&session("previousround")&"score")%></td> <td><input type="checkbox" name="checkbox" value="<%=rs2("qq")%>"></td> </tr> <%rs2.movenext loop %> 接收并修改数据库代码如下: <% allselected=Split(Request.form("checkbox"))

for each i in allselected response.Write i set rs2=server.createobject("adodb.recordset") sql2="update gracedata set gracedata.round"&session("currentround")&"pass=1 where gracedata.qq="&i on error resume next set rs2=conn.execute(sql2) rs2.close set rs2=nothing next conn.close %> 但是好像只能修改数据库内的一个数据,急用呀,请各位朋友帮忙一下。

搜索更多相关主题的帖子: 数据库 表单 批量 checkbox 
2005-07-30 11:21
阿星
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2005-5-29
收藏
得分:0 
if not isnumeric(request("xing_movie_class_id")) and request("xing_movie_class_id")&lt;&gt;"" then
Response.Write("&lt;script language=javascript&gt;alert('ID必须是数字!');history.back(1);&lt;/script&gt;")
response.end
end if
if request("xing_movie_class_id")="0" or request("xing_movie_class_id")="" then
Response.Write("&lt;script language=javascript&gt;alert('对不起,您输入错误的ID!');history.back(1);&lt;/script&gt;")
response.end
end if
sql="select * from [xing_movie_class] where xing_movie_class_id="&amp;cint(request.form("xing_movie_class_id"))
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,3
xing_movie_class_name=trim(replace(request.form("xing_movie_class_name"),"'",""))
if xing_movie_class_name = "" then
Response.Write("&lt;script language=javascript&gt;alert('错误提示:你必须填写分类名称!!');history.back(1);&lt;/script&gt;")
response.end
end if
rs("xing_movie_class_name")=xing_movie_class_name
rs.update
rs.close
set rs=nothing
Conn.execute"update [xing_movie] set xing_movie_class_name='"&amp;request("xing_movie_class_name")&amp;"' where xing_movie_class_id="&amp;request("xing_movie_class_id")
response.redirect "?xing=movieclass"


我的是这样的~~

2005-07-30 11:34
阿星
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2005-5-29
收藏
得分:0 
我的是修改大类表  连同小类表的同样的名称一起批量修改

如:大类名称  字段是  class_name

那小类表的  liast   里有class_name  的字段  那就批量的修改~~~

2005-07-30 11:39
toolag
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2005-7-30
收藏
得分:0 
split用法错误, 造成仅仅匹配最后一个被选qq的更新结果
Split 函数 语言参考 版本 2

请参阅


描述
返回基于 0 的一维数组,其中包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, start]]])

Split 函数的语法有以下参数:

参数 描述
expression 必选。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。
delimiter 可选。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。
count 可选。被返回的子字符串数目,-1 指示返回所有子字符串。
compare 可选。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。

设置
compare 参数可以有以下值:

常数 描述
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。
vbDatabaseCompare 2 执行基于数据库(在此数据库中执行比较)中包含的信息的比较。

接收并修改数据库代码如下:
<% Dim selectedList,sqlUpdate, qqNo selectedList = Request.form("checkbox")'将会接受到类似"12345, 66666, 456789"的字符串, 每个"," 后面有一个空格 selectedList = Split(selectedList,", ") For each qqNo in selectedList sqlUPdate="update gracedata set gracedata.round"&session("currentround")&"pass=1 where gracedata.qq="&qqNo 'on error resume next conn.execute(sqlUpdate) Next conn.close Set conn = nothing %>
个人认为, 最好使用int系列ID号作为构选内容和匹配条件字段,使用 型如"WHERE id in("&selectedList&")" 的SQL语句即可实现批量操作,而不需要split之类的处理 如果事string(char)型,那么 由于 selectedList中没有任何区别 使用上面的语句造成类型错误,需要对其进行必要的处理(每个元素前后需要增加'和'),略显麻烦了,不如循环得了 像qq这样的信息, 应该是使用 nvarchar(15)[假设是MS SQL Server]的类型比较合适

[此贴子已经被作者于2005-7-30 22:25:44编辑过]


VB, Delphi, ASP, PHP, JSP, .NET MS SQL, My SQL, Oracle Diablo, StarCraft, WarCraft, World of Warcraft
2005-07-30 22:07
快速回复:[求助]表单批量数据批量修改数据库(在线等),请帮忙
数据加载中...
 
   



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

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