黑暗之魂2那把刺剑好:asp批量修改数据库记录的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/27 17:39:21
asp中如何批量修改数据库记录?我的意思不是说要一次把所选记录都修改为相同的值,而是所选的每一条记录都会修改为不同的值,请问如何办到?例如:我在页上显示有三条记录:
1. 姓名(字段):aaa (文本框) , 年龄(字段):20(文本框) ,学历(字段):本科(文本框)
2. 姓名(字段):bbb(文本框) , 年龄(字段):30 (文本框),学历(字段):硕士(文本框)
3. 姓名(字段):ccc (文本框) , 年龄(字段)(文本框):18 ,学历(字段):高中(文本框)

我希望在把这三条记录的值填完后通过一次提交修改生效而不是一条一条修改,请问该如何编写液面代码?
不能用get方式提交,因为每次记录数是动态生成的,可能会一次要提交300条,肯定超出url参数限制

参考下面两个网页文件的代码:

a1.asp:

<form name="form1" method="post" action="a2.asp">
<table width="100%" border="0">
<tr>
<td><input name="a1" type="text" id="a1"></td>
<td><input name="b1" type="text" id="b1"></td>
<td><input name="c1" type="text" id="c1"></td>
<td> </td>
</tr>
<tr>
<td><input name="a1" type="text" id="a1"></td>
<td><input name="b1" type="text" id="b1"></td>
<td><input name="c1" type="text" id="c1"></td>
<td> </td>
</tr>
<tr>
<td><input name="a1" type="text" id="a1"></td>
<td><input name="b1" type="text" id="b1"></td>
<td><input name="c1" type="text" id="c1"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="提交"></td>
<td> </td>
<td> </td>
</tr>
</table>
</form>

a2.asp

<%
xm=request("a1")'值为"aaa,bbb,ccc",下面的也是一样.
nl=request("b1")
xl=request("c1")
xm1=SPLIT(xm,",")'从","处分割为aaa bbb ccc
nl1=SPLIT(nl,",")
xl1=SPLIT(xl,",")

for i=0 to ubound(xm1)'遍历数组
'strsql="select * from 表名 where 姓名 = '"&xm1(i)&"'" '此处可这样加入一个SQL语句进行数据库录入处理
response.Write(xm1(i)&"<br>")
response.Write(nl1(i)&"<br>")
response.Write(xl1(i)&"<br>")
'rs.update'此处可加入更新数据库的命令
next
%>

其实当你把同一类的表单的name设为同一个名字,那么提交的时候就会形成一个数组
以姓名这个文本框为例
提交页面有3个填写姓名的文本框,我们把它的名字都设为username
用户1<input type="text" name="username">
用户2<input type="text" name="username">
用户3<input type="text" name="username">

那么在接收页面就会形成数组
request("username")'这是一个数组

然后我们可以用循环来取得用户1,用户2,用户3的值
for each username in request("username")
response.write username'这里循环输入用户1,用户2,用户3的名字 把这里改为数据库操作就能实现批量录入
next

补充:for each是一个遍历数组的语句,可以遍历数组里面每一个值