|          
asp中利用数组实现数据库记录的批量录入方法(原创)演示:http://www.zwtd.com/1/yanek/n/needdj2.asp
 <%
 rem 文章题目 asp中利用数组实现数据库记录的批量录入方法(原创)
 作者:yanek
 联系email:aspboy@263.net
 %>
 
 包括两个文件
 1。allneeddj.asp:实现表单的生成
 2. allneeddjresult.asp 处理表单批量录入
 3.hbedu.mdb :数据库文件
 其数据库结构如下
 provinceid:省份编号 数值型
 dytaocount:打样套数 数值型
 papertaocount:纸样套数 数值型
 cpcontent:出片内容 数值型
 filename:文件名 文本型
 beizhu:备注备注型
 
 本例子中以10条记录,每条记录6个字段说明.
 
 1。allneeddj.asp
 
 <html>
 
 <head>
 <meta http-equiv="Content-Language" content="zh-cn">
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
 <meta name="ProgId" content="FrontPage.Editor.Document">
 <title>需求登记</title>
 </head>
 
 <body>
 
 
 
 <%
 set conn=server.createobject("adodb.connection")
 conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & _
 Server.MapPath("hbedu.mdb")
 
 %>
 
 <form method="POST" action="allneeddjresult.asp">
 <div align="center">
 <center>
 <table border="1" width="700" bordercolorlight="#FFFFFF">
 <tr>
 <td width="660" colspan="6">
 <p align="center">需求登记</td>
 </tr>
 <tr>
 <td width="54" align="center">省份</td>
 <td width="66" align="center">打样张数</td>
 <td width="66" align="center">纸样张数</td>
 <td width="66" align="center">出片内容</td>
 <td width="80" align="center">文件名</td>
 <td width="328" align="center">
 <p align="center">备注</td>
 </tr>
 
 
 <%
 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
 %>
 
 
 <tr>
 <td width="54"><select name="<% response.write"data1"&i %>"
 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
 %></select></td>
 <td width="66"><input type="text" name="<% response.write"data2"&i %>" size="8"></td>
 <td width="66"><input type="text" name="<% response.write"data3"&i %>" size="8"></td>
 <td width="66"><select size="1" name="<% response.write"data4"&i %>">
 <option value="1">改动部分</option>
 <option value="2">全部内容</option>
 </select></td>
 <td width="80"><select name="<% response.write"data5"&i %>"
 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
 %></select> </td>
 <td width="328"><textarea rows="2" name="<% response.write"data6"&i %>" cols="46"></textarea></td>
 </tr>
 
 
 
 <% next %>
 
 
 
 <tr>
 <td width="660" colspan="6">
 <p align="center"><input type="submit" value="提交" name="B1"></td>
 </tr>
 
 </center>
 </div>
 </form>
 
 </body>
 
 </html>
 
 2.allneeddjresult.asp
 
 
 <%
 rem 定义二维数组存放从表单获取的值
 dim data(10,6)
 for i= 1 to 6
 for j= 1 to 10
 mydata="data"+cstr(i)+cstr(j)
 data(j,i)=request.form(mydata)
 next
 next
 %>
 
 <%
 rem 输出表单输入的值
 for i= 1 to 10
 for j= 1 to 6
 
 response.write data(i,j)
 
 next
 response.write"<br>"
 next
 
 'response.end
 %>
 
 <%
 dim conn,rs
 Set conn = Server.CreateObject("ADODB.Connection")
 conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & _
 Server.MapPath("hbedu.mdb")
 
 
 for i= 1 to 10
 rem 循环批量入库
 
 Set rs=SERVER.CreateObject("ADODB.Recordset")
 rs.Open "hbedu",conn,1,3
 rs.AddNew
 rs("beizhu")=data(i,6)
 rs("filename")=data(i,5)
 rs("cpcontent")=data(i,4)
 rs("papertaocount")=data(i,3)
 rs("dytaocount")=data(i,2)
 rs("provinceid")=data(i,1)
 rs.Update
 rs.close
 set rs=nothing
 
 response.write"ok<br>"
 next
 %>
 演示:http://www.zwtd.com/1/yanek/n/needdj2.asp
 |