asp实现批量录入数据的实现

  批量录入在数据库的应用中比较广泛的,关于批量录入的方法也有好多种。下面我就结合我实际中的应用,谈一下儿我是怎么实现的。主要用到的是form的集合的概念,通过循环取的所有的集合内数据。考虑到大家看着方便,我把它集成到了一个页面。

  下面是具体的代码:

  batchInput.asp

  <%

  '#####################################

  'File Function:批量录入数据

  'Author:Myhon

  'Date:2003-8-19

  '#####################################

  '向数据库写入数据

  SUB writeData()

  dim recCnt,i

  dim fieldName1,fieldName2,fieldName3

  dim conn

  dim sqlStr,connStr

  connStr="Provider=SQLOLEDB.1;Initial Catalog=myDatabase;Data Source=myhon;User Id=sa;PASSWORD="

  set conn=Server.CreateObject("ADODB.Connection")

  conn.open connStr '建立数据库连接

  recCnt=request.form("stu_num").count '取得共有多少条记录

  '批量录入数据

  for i=1 to recCnt

  fieldName1=trim(request.form("fieldName1")(i))

  fieldName2=trim(request.form("fieldName2")(i))

  fieldName3=trim(request.form("fieldName3")(i))

  sqlStr="insert into myTable(fieldName1,fieldName2,fieldName3) values('"

  sqlStr=sqlStr & fieldName1 & "','"

  sqlStr=sqlStr & fieldName2 & "','"

  sqlStr=sqlStr & fieldName3 & "')"

  'response.write sqlStr

  conn.execute(sqlStr)

  next

  END SUB

  '显示成批录入的界面

  SUB InputData()

  dim recCnt,i

  %>

  <form name="bathInputData" action="" method="post">

  <%

  recCnt=cint(request.form("recCnt"))

  for i=1 to recCnt

  %>

  <input type="text" name="fieldName1">

  <input type="text" name="fieldName2">

  <input type="text" name="fieldName3">

  <%

  next

  %>

  <br>

  <input type="submit" name="action" value="提交">

  </form>

  <%

  END SUB

  '指定要批量录入多少条记录

  SUB assignHowMuch()

  %>

  <!------指定要录入多少条记录-------------->

  <form name="form1" action="" method="post">

  您要录入的记录的条数:<input type="text" name="recCnt">

  <input type="submit" name="action" value="下一步>>">

  </form>

  <%

  END SUB

  if request.form("action")="下一步>>" then

  Call InputData() '显示成批录入界面

  elseif request.form("action")="提交" then Call writeData() '向数据库批量写入数据

  else

  Call assignHowMuch() '显示指定录入多少条记录的界面

  end if

  %>