网友俱乐部 » 网络编程 » JSP教程 » 用数组实现数据记录的批量录入方法

2008-7-16 13:06 轻骑兵
用数组实现数据记录的批量录入方法

<%
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=" &amp; _
             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"&amp;i %>"
      size="1">
<%
              do while not rs.eof
                             if province=cstr(rs("id")) then
                                sel="selected"
                             else
                                sel=""
                             end if            
                             response.write "<option " &amp; sel &amp; " 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"&amp;i %>" size="8"></td>
      <td width="66"><input type="text" name="<% response.write"data3"&amp;i %>" size="8"></td>
      <td width="66"><select size="1" name="<% response.write"data4"&amp;i %>">
          <option value="1">改动部分</option>
          <option value="2">全部内容</option>
        </select></td>
      <td width="80"><select name="<% response.write"data5"&amp;i %>"
      size="1">
<%
              do while not rs1.eof
                             if filename=cstr(rs1("filename")) then
                                sel="selected"
                             else
                                sel=""
                             end if            
                             response.write "<option " &amp; sel &amp; " 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"&amp;i %>" cols="46"></textarea></td>
    </tr>
  
   
   
      <% next %>
   
   
   
    <tr>
      <td width="660" colspan="6">
        <p align="center"><input type="submit" value="提交" name="B1"></td>
    </tr>
  </table>
    </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=" &amp; _
             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

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.