批量录入在数据库的应用中比较广泛的,关于批量录入的方法也有好多种。下面我就结合我实际中的应用,谈一下儿我是怎么实现的。主要用到的是form的集合的概念,通过循环取的所有的集合内数据。考虑到大家看着方便,我把它集成到了一个页面。
下面是具体的代码:
batchInput.asp
<%
'#####################################
'FileFunction:批量录入数据
'Author:Myhon
'Date:2003-8-19
'#####################################
'向数据库写入数据
SUBwriteData()
dimrecCnt,i
dimfieldName1,fieldName2,fieldName3
dimconn
dimsqlStr,connStr
connStr="Provider=SQLOLEDB.1;InitialCatalog=myDatabase;DataSource=myhon;UserId=sa;PASSWORD="
setconn=Server.CreateObject("ADODB.Connection")
conn.openconnStr'建立数据库连接
recCnt=request.form("stu_num").count'取得共有多少条记录
'批量录入数据
fori=1torecCnt
fieldName1=trim(request.form("fieldName1")(i))
fieldName2=trim(request.form("fieldName2")(i))
fieldName3=trim(request.form("fieldName3")(i))
sqlStr="insertintomyTable(fieldName1,fieldName2,fieldName3)values('"
sqlStr=sqlStr&fieldName1&"','"
sqlStr=sqlStr&fieldName2&"','"
sqlStr=sqlStr&fieldName3&"')"
'response.writesqlStr
conn.execute(sqlStr)
next
ENDSUB
'显示成批录入的界面
SUBInputData()
dimrecCnt,i
%>
<formname="bathInputData"action=""method="post">
<%
recCnt=cint(request.form("recCnt"))
fori=1torecCnt
%>
<inputtype="text"name="fieldName1">
<inputtype="text"name="fieldName2">
<inputtype="text"name="fieldName3">
<%
next
%>
<br>
<inputtype="submit"name="action"value="提交">
</form>
<%
ENDSUB
'指定要批量录入多少条记录
SUBassignHowMuch()
%>
<--指定要录入多少条记录-------------->
<formname="form1"action=""method="post">
您要录入的记录的条数:<inputtype="text"name="recCnt">
<inputtype="submit"name="action"value="下一步>>">
</form>
<%
ENDSUB
ifrequest.form("action")="下一步>>"then
CallInputData()'显示成批录入界面
elseifrequest.form("action")="提交"thenCallwriteData()'向数据库批量写入数据
else
CallassignHowMuch()'显示指定录入多少条记录的界面
endif
%>