用数组实现数据记录的批量录入方法

1   
2rem 文章题目 asp中利用数组实现数据库记录的批量录入方法(原创)   
3作者:yanek   
4联系email:[email protected]   

包括两个文件
1。allneeddj.asp:实现表单的生成
2. allneeddjresult.asp 处理表单批量录入
3.hbedu.mdb :数据库文件
其数据库结构如下
provinceid:省份编号 数值型
dytaocount:打样套数 数值型
papertaocount:纸样套数 数值型
cpcontent:出片内容 数值型
filename:文件名 文本型
beizhu:备注 备注型

本例子中以10条记录,每条记录6个字段说明.

1。allneeddj.asp

 1<html>
 2<head>
 3<meta content="zh-cn" http-equiv="Content-Language"/>
 4<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
 5<meta content="Microsoft FrontPage 4.0" name="GENERATOR"/>
 6<meta content="FrontPage.Editor.Document" name="ProgId"/>
 7<title>需求登记</title>
 8</head>
 9<body>   
10  
11  
12  

set conn=server.createobject("adodb.connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &amp; _
Server.MapPath("hbedu.mdb")

 1  
 2<form action="allneeddjresult.asp" method="POST">
 3<div align="center">
 4<center>
 5<table border="1" bordercolorlight="#FFFFFF" width="700">
 6<tr>
 7<td colspan="6" width="660">
 8<p align="center">需求登记</p></td>
 9</tr>
10<tr>
11<td align="center" width="54">省份</td>
12<td align="center" width="66">打样张数</td>
13<td align="center" width="66">纸样张数</td>
14<td align="center" width="66">出片内容</td>
15<td align="center" width="80">文件名</td>
16<td align="center" width="328">
17<p align="center">备注</p></td>
18</tr>   
19  
20  

rem 通过循环动态生成不同名称表单域
for i=1 to 10

set rs=server.createobject("adodb.recordset")
sql="select * from provinceinfo "
rs.open sql,conn,1,1

set rs1=server.createobject("adodb.recordset")
sql1="select * from filename "
rs1.open sql1,conn,1,1

1  
2  
3<tr>
4<td width="54"><select ```"="" data1"&amp;i="" name="```
5 response.write" size="1">   

do while not rs.eof
if province=cstr(rs("id")) then
sel="selected"
else
sel=""
end if
response.write "<option "="" &="" sel="" value='"+CStr(rs("id"))+"'>"+rs("province")+"</option>"+chr(13)+chr(10)
rs.movenext
loop
set rs=nothing

 1<td width="66"><input ```"="" data2"&amp;i="" name="```
 2 response.write" size="8" type="text"/></td>
 3<td width="66"><input ```"="" data3"&amp;i="" name="```
 4 response.write" size="8" type="text"/></td>
 5<td width="66"><select ```"="" data4"&amp;i="" name="```
 6 response.write" size="1">
 7<option value="1">改动部分</option>
 8<option value="2">全部内容</option>
 9</select></td>
10<td width="80"><select ```"="" data5"&amp;i="" name="```
11 response.write" size="1">   

do while not rs1.eof
if filename=cstr(rs1("filename")) then
sel="selected"
else
sel=""
end if
response.write "<option "="" &="" sel="" value='"+CStr(rs1("filename"))+"'>"+rs1("filename")+"</option>"+chr(13)+chr(10)
rs1.movenext
loop

set rs1=nothing

1<td width="328"><textarea ```"="" cols="46" data6"&amp;i="" name="```
2 response.write" rows="2"></textarea></td>
3</tr>   
4  
5  
6  

next

 1  
 2  
 3  
 4<tr>
 5<td colspan="6" width="660">
 6<p align="center"><input name="B1" type="submit" value="提交"/></p></td>
 7</tr>
 8</table>
 9</center>
10</div>
11</form>
12</body>
13</html>

2.allneeddjresult.asp

1   
2rem 定义二维数组存放从表单获取的值   
3dim data(10,6)   
4for i= 1 to 6   
5for j= 1 to 10   
6mydata="data"+cstr(i)+cstr(j)   
7data(j,i)=request.form(mydata)   
8next   
9next   
1   
2rem 输出表单输入的值   
3for i= 1 to 10   
4for j= 1 to 6   
5  
6response.write data(i,j)   
7  
8next   
9response.write"

<br/>

1"   
2next   
3  
4'response.end   
 1   
 2dim conn,rs   
 3Set conn = Server.CreateObject("ADODB.Connection")   
 4conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & _   
 5Server.MapPath("hbedu.mdb")   
 6  
 7  
 8for i= 1 to 10   
 9rem 循环批量入库   
10  
11Set rs=SERVER.CreateObject("ADODB.Recordset")   
12rs.Open "hbedu",conn,1,3   
13rs.AddNew   
14rs("beizhu")=data(i,6)   
15rs("filename")=data(i,5)   
16rs("cpcontent")=data(i,4)   
17rs("papertaocount")=data(i,3)   
18rs("dytaocount")=data(i,2)   
19rs("provinceid")=data(i,1)   
20rs.Update   
21rs.close   
22set rs=nothing   
23  
24response.write"ok

<br/>

1"   
2next   

演示:http://www.zwtd.com/1/yanek/n/needdj2.asp

Published At
Categories with Web编程
Tagged with
comments powered by Disqus