找回密码
 立即加入
搜索

查看: 1036|回复: 5

[原创]asp实现批量录入数据的实现

[复制链接]
冬冬 发表于 2005-9-13 23:56:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转闽南师范大学。

您需要 登录 才可以下载或查看,没有账号?立即加入

×
批量录入在数据库的应用中比较广泛的,关于批量录入的方法也有好多种。9 v" _/ E& z$ a
下面我就结合我实际中的应用,谈一下我是怎么实现的。2 D4 k  f  B  {: e, O- j9 g- a
主要用到的是form的集合的概念,通过循环取的所有的集合内数据。/ G2 ~' K2 p* i
考虑到大家看着方便,我把它集成到了一个页面。
, ], y+ d  W& u6 c下面是具体的代码: * |/ }9 `$ q* n1 D5 m" f
batchInput.asp5 }4 c- N) A8 Q- J
<%
, V7 q4 a) {; U: J! k6 c'#####################################- C6 ?$ I0 Z1 E" ~
'File Function:批量录入数据
! o8 o% a4 t. B/ W; I'Author:Myhon6 |. r7 X4 e1 `( \5 }1 n5 Q6 z
'Date:2003-8-19+ t* W3 `; \( ~* w4 L! ~
'#####################################& s, Q" U, E3 U# P- O
'向数据库写入数据
! w3 Y: S# a& E9 m. R( t6 xSUB writeData()
' z5 W! [9 S. L" g6 I& P( `' N) z! g& |dim recCnt,i
) Q9 q1 [  q/ }- g% n7 h8 jdim fieldName1,fieldName2,fieldName3
* L1 e$ S, w0 n' t1 P. P% O; zdim conn# a% K+ v9 j: ?" K# K: |, X, r
dim sqlStr,connStr
9 d  O5 B5 e. U& hconnStr="rovider=SQLOLEDB.1;Initial Catalog=myDatabase;Data Source=myhon;User Id=saASSWORD="6 ]  r/ _2 G9 j) L& C' T
set conn=Server.CreateObject("ADODB.Connection")7 G' S! p! k: P$ ~4 D6 I! F8 g% P! p
conn.open connStr '建立数据库连接
- z3 i9 r& r" X3 K: _recCnt=request.form("stu_num").count '取得共有多少条记录
' `  Y% p8 v" ~& d'批量录入数据
: c& |5 ~8 G& g  c: q1 T5 y+ qfor i=1 to recCnt# U2 k, F9 y+ ~9 c* S
fieldName1=trim(request.form("fieldName1")(i))& k2 f) l0 u: Y$ Y4 u6 @  A/ k
fieldName2=trim(request.form("fieldName2")(i))
5 i" G/ {5 ?* p, |  r3 SfieldName3=trim(request.form("fieldName3")(i))
$ V  `  q6 U& c  c) y% ksqlStr="insert into myTable(fieldName1,fieldName2,fieldName3) values('"# m/ \) g& f3 J, _; A+ ^
sqlStr=sqlStr & fieldName1 & "','"
2 |1 }' P3 j8 s4 j% }/ jsqlStr=sqlStr & fieldName2 & "','"/ {; N( s! V# ^2 A& t
sqlStr=sqlStr & fieldName3 & "')"( K, `5 q, q  y
'response.write sqlStr
1 d9 \! X( ^: B- a# L/ l! ~conn.execute(sqlStr)3 t: J; R. Y6 M
next
# A( ~. l5 q4 `END SUB
3 w( |* ~" n. c& u8 q- O  e'显示成批录入的界面
0 z& v" ]( N" G' G& @SUB InputData()
  @2 o0 D( x) q' b- ndim recCnt,i) O7 ~# ?; m, t1 w
%>! J  l5 H- H9 n; [  a. {( b( A9 Q
<form>% V& j. j7 ~+ a" z0 x; q' ?4 ~# [
<%
. f+ i, D/ T0 U$ N5 WrecCnt=cint(request.form("recCnt"))& I6 g7 y3 K/ |; U/ Z# g
for i=1 to recCnt
  ^$ w1 G& V2 F, s# _%>8 W" e7 P0 T1 m, x0 l  y
<input>2 F( D$ S) u/ H- D* J0 F
<input>
0 S1 R% E; k; O4 U9 R, Q( }<input>3 g9 @1 x1 x- X, \! U
<%# \7 G7 L- ^# |! M- ?* p
next& M/ ~+ D) `! M3 j1 t1 i
%>* U* e5 Z. h% r9 I5 m0 ]+ z
<br>) ~$ j! D* L) n. w& ]3 j
<input>; e6 c5 U6 L+ l' O, a/ j
</form>
# g8 a7 P6 u4 w! f+ q/ I<%
+ J/ j" m' Q9 O2 P9 r+ [* u" IEND SUB
8 h  ?0 O3 E5 o$ ^: z9 n'指定要批量录入多少条记录* u0 K( h, [3 ?1 t9 [* I, A6 _
SUB assignHowMuch()
: P! g  t# Y1 {. Y  d- T- ?2 X%>
- o" Y2 _! @$ V' v<!------指定要录入多少条记录-------------->
/ V; g& W" ~; ?/ F% p<form>
  J$ s9 t9 _( y6 ~4 H您要录入的记录的条数:<input>7 i/ Q) H+ s) |! l# `
<input>>">
+ H6 f) C2 K6 L0 H3 g0 }. O</form>
! k1 y: [' z0 ~1 z0 L<%$ {+ n" H  u6 |& I$ z
END SUB
# Y$ S6 J- W8 y. f0 O( xif request.form("action")="下一步>>" then
8 ?$ R2 F8 j: G+ Y) a" vCall InputData() '显示成批录入界面; ?$ `3 N) [( s
elseif request.form("action")="提交" then Call writeData() '向数据库批量写入数据' P! s  w8 e# d7 S& \
else: ?- ?, {# y% l) P& F
Call assignHowMuch() '显示指定录入多少条记录的界面- s2 [9 B! T1 C# P5 p
end if
& @6 _$ j- _- [: I0 d/ k/ ]0 @# M* s& |
%>
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
hyc0214 发表于 2005-9-14 02:38:58 | 显示全部楼层
唉,残缺不全啊!
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

 楼主| 冬冬 发表于 2005-9-14 02:49:41 | 显示全部楼层
是,残缺不全! e/ k. ?: z- w8 r# f
因为我是外网
; q' Q+ N- m5 K  b% F4 J
- M2 |. d" s" P$ ]# ]7 |7 M下午要发的时候,写了一半1 @  R3 D3 p' m& B: q
卡了
* ?' _# K# r& p
- }( y) T  j- t; V5 s于是,就死了; \5 |' @3 Q! x, |+ ?

) f0 j5 T- O; X( o: c9 G所以,就只有一半了
  _" g2 l% S- D' O; A3 D, ?. x3 L: v* ^4 |% T. g
后来,干脆不上了
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

hyc0214 发表于 2005-9-15 06:01:08 | 显示全部楼层
再帮你补充
5 c" z: Q' S7 P6 W' A" F8 j批量录入在数据库的应用中比较广泛的,关于批量录入的方法也有好多种。
( F: o2 A, Y7 x! D下面我就结合我实际中的应用,谈一下我是怎么实现的。
/ y( y6 K3 E, h, D/ ]2 d5 X主要用到的是form的集合的概念,通过循环取的所有的集合内数据。
$ V# u8 t5 E6 W1 x# p" F5 M考虑到大家看着方便,我把它集成到了一个页面。
: O7 S7 s# s, u5 h0 f下面是具体的代码:   ?8 o3 U: H! Q! K
batchInput.asp
0 f% _  H/ j6 N" |& n( z* q% [<%
5 S% ]5 o/ }0 n\'#####################################
, L  {0 _- i$ ?* h8 B\'File Function:批量录入数据
  u& a) |. S% b6 k; J$ L\'Author:Myhon& [" m  C6 o8 a0 l% |& Q: L+ Q
\'Date:2003-8-19
2 O6 u1 d" K* @8 c6 r\'#####################################9 B( |# r  X8 w, e
\'向数据库写入数据; C( X0 m+ N" p& P
SUB writeData()
' O4 x3 P: [7 h! M. [% Z. j* O" Wdim recCnt,i( }7 G: k# `& K; Y- U" r) J
dim fieldName1,fieldName2,fieldName3
' d8 D3 i  x' ^& udim conn& {+ z8 T  p7 _% F
dim sqlStr,connStr, ?: {  G" Z, e) o$ N
connStr=\"rovider=SQLOLEDB.1;Initial Catalog=myDatabase;Data Source=myhon;User Id=saASSWORD=\"
0 _+ c5 f: }% Nset conn=Server.CreateObject(\"ADODB.Connection\")
' K5 |4 @/ \& U9 v- P. [+ c  Jconn.open connStr \'建立数据库连接
( O$ W, E5 j0 a' o& z& I- qrecCnt=request.form(\"stu_num\").count \'取得共有多少条记录9 ?/ Z1 L# q( V) }
\'批量录入数据
' D/ @" Y& i* _. t( n5 E! Lfor i=1 to recCnt' T* P+ q! O7 j2 a- j
fieldName1=trim(request.form(\"fieldName1\")(i))
* e/ H. ]9 c" [, l, q# m0 ^6 LfieldName2=trim(request.form(\"fieldName2\")(i))+ e  y+ c" b5 b% m
fieldName3=trim(request.form(\"fieldName3\")(i))
" }1 w% T# N( U& MsqlStr=\"insert into myTable(fieldName1,fieldName2,fieldName3) values(\'\"
* @, Q% t' o# Z+ k' C8 FsqlStr=sqlStr & fieldName1 & \"\',\'\"
. j1 |+ x' C( k) q+ dsqlStr=sqlStr & fieldName2 & \"\',\'\"0 l8 F& K4 R6 h. x* ?4 {
sqlStr=sqlStr & fieldName3 & \"\')\"6 m& m2 n* y! G" B$ a% x4 n" t# J
\'response.write sqlStr
  y# x2 E! Q1 B" m1 L0 |conn.execute(sqlStr)
  l, @9 q0 R% e( [+ C5 Bnext( \# W8 R* O, o6 F9 t# H( ]
END SUB2 h# `/ ^3 [( z
\'显示成批录入的界面
8 W0 n" r! z& S1 _( HSUB InputData()5 M( R) @& D$ L- o
dim recCnt,i
2 Q+ c: S/ B+ j5 q%><form><% ; V, z# Z9 o1 q8 i, n4 q/ i% G  |; W
recCnt=cint(request.form(\"recCnt\")). O; u: e: r3 @! x1 h0 t( ~1 o
for i=1 to recCnt4 U4 l, X- B# G% K
%><input><input><input><%6 F4 t! U7 s& d* R
next
1 B5 [( T& V, y! i& v1 Q5 w%><br><input></form><%1 ]1 v: {' x- e4 A0 x3 z
END SUB  Q2 q% ?8 u6 d
\'指定要批量录入多少条记录
# r' K6 j. E0 F  O! e  N8 nSUB assignHowMuch()
9 k' R9 Z: N5 @%><!------指定要录入多少条记录--------------><form>1 G& Z0 H2 c6 [7 N+ R. u* R
您要录入的记录的条数::<input><input>>\"></form><%
$ R. [# b. Y9 UEND SUB$ q3 z& v3 h4 W5 A$ A+ X; q, S4 x# @
if request.form(\"action\")=\"下一步>>\" then- b# l- k6 l1 _8 ~  c9 c; Y
Call InputData() \'显示成批录入界面
2 ^# ?* M) ^4 _' Y4 B+ velseif request.form(\"action\")=\"提交\" then Call writeData() \'向数据库批量写入数据
% `7 ?" K! j9 Welse5 p& x, B9 @, ~% V+ ]8 B& g
Call assignHowMuch() \'显示指定录入多少条记录的界面0 C& e% W5 e/ L! A
end if" `, J! [0 a( i7 O" ?5 n8 B
%>
5 p/ z. ~& W1 t$ ]& f. f又沾你的光了。。。
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

 楼主| 冬冬 发表于 2005-9-15 19:28:37 | 显示全部楼层
谢谢!
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

 楼主| 冬冬 发表于 2005-9-15 19:30:34 | 显示全部楼层
每次发贴都这样,只有一半!
+ P$ l8 t3 R, H! V+ Z# \* A! s2 E我都没有耐心了
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

手机版|龙江曦月 ( 闽ICP备05009150号-1 )闽公安网备35060202000316

GMT+8, 2025-5-26 09:31 , Processed in 0.055712 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表