找回密码
 立即加入
搜索

查看: 1035|回复: 5

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

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

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

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

×
批量录入在数据库的应用中比较广泛的,关于批量录入的方法也有好多种。" i5 S' B9 l/ P5 |$ X  ]0 i8 M
下面我就结合我实际中的应用,谈一下我是怎么实现的。
( e. o2 U3 S; ^, F主要用到的是form的集合的概念,通过循环取的所有的集合内数据。7 P7 T6 S0 t1 e9 t
考虑到大家看着方便,我把它集成到了一个页面。5 x4 j/ [$ I; k! ~
下面是具体的代码: 2 a; A5 x( _( ~' u
batchInput.asp
! f9 O% B) w; r<%+ v# a  y* A+ z5 t) r. ]1 ^, E4 K
'#####################################
* h# g+ j. g; y$ x% N, |: A! H! F'File Function:批量录入数据
! M2 ]3 `; s' ?+ _2 ~& }$ m2 k'Author:Myhon9 [+ [. u( C! G& V
'Date:2003-8-19
+ d3 T) d4 y4 p( x5 e'#####################################% h' t; z& \, I! \
'向数据库写入数据
) J2 Y% j( b' T: Z# _6 {1 sSUB writeData()
& P9 W% z: `/ N2 V2 L& idim recCnt,i
5 S( u7 n- A+ I4 a/ y8 F# N- C+ Idim fieldName1,fieldName2,fieldName33 v+ v& I, Z1 a) q4 H5 b0 v+ l! P
dim conn
/ L* a, u1 v4 |" k* s& V3 e+ a5 D' hdim sqlStr,connStr
4 F) ]9 E; l2 mconnStr="rovider=SQLOLEDB.1;Initial Catalog=myDatabase;Data Source=myhon;User Id=saASSWORD="
% o! R. u+ M9 Gset conn=Server.CreateObject("ADODB.Connection")- w8 N8 h& z+ p* R
conn.open connStr '建立数据库连接
1 k% |3 f( a; [- XrecCnt=request.form("stu_num").count '取得共有多少条记录/ B/ P. a* d- r( \
'批量录入数据# @( G! N0 v, g5 l
for i=1 to recCnt
. K$ @9 U; `, I+ S% U5 K8 M# cfieldName1=trim(request.form("fieldName1")(i))
/ x. d4 l$ ?# R: m# c' xfieldName2=trim(request.form("fieldName2")(i)): T9 s! H/ L2 L* a
fieldName3=trim(request.form("fieldName3")(i))
3 u8 F# c% @$ i9 ]; zsqlStr="insert into myTable(fieldName1,fieldName2,fieldName3) values('"2 p7 V/ R* p1 G! D+ g# n; N$ E9 o
sqlStr=sqlStr & fieldName1 & "','"6 S6 X% s6 F, D! t! m
sqlStr=sqlStr & fieldName2 & "','"7 I4 W$ H4 t, r5 g1 O/ i) f4 Q  o
sqlStr=sqlStr & fieldName3 & "')"; l: C/ G9 F. W1 m+ f& X1 [5 |2 T# O
'response.write sqlStr
. E4 u! m2 |  uconn.execute(sqlStr)" h& r( G' Q# M2 d& E: W
next
2 p+ @) p% U0 s& G  a" TEND SUB& W* h* K, Y' t9 ?# V9 F, V: P
'显示成批录入的界面
6 r. n" `3 H3 o, X7 F1 L% f8 C: `' dSUB InputData()
% W7 K8 i3 N5 W9 ^2 pdim recCnt,i0 U* c5 X) \, s, a& R9 [
%>
3 O6 u3 x$ q/ ^% ?- Q" P<form>
- v9 a" @5 R- B, b9 t<%
2 _( y$ g( {: h9 j6 o. o8 ]recCnt=cint(request.form("recCnt"))* Z& B( }, X( {
for i=1 to recCnt6 z! E6 L1 ?' j- G; {0 f
%>+ k, U0 Y; B* l% `8 E; t% G: e6 A
<input>8 e3 c& o& F2 L, a6 T
<input>
! z1 A8 G7 }1 w6 Q% J# L$ d. x# j<input>0 x! Q( M" H7 K" ?2 y- \
<%$ {4 N% ]4 r+ q' {
next
+ e: H- ^4 q; o. T& ~. I! n$ h%>7 ~* b* ?7 N( e+ G
<br>5 Z  ~2 j7 }- x  c/ K
<input>4 X& U8 b6 e- O) @+ ?% n, {& f
</form>) }7 I( G' u, G! ?) g8 p" t. V
<%9 Y$ F, P0 w6 l2 x$ ^
END SUB4 r+ s! [) K  ^1 _7 M
'指定要批量录入多少条记录
6 u- \+ u% y: sSUB assignHowMuch()
- h$ o, c) t" p) a% N5 e%>
( y1 t) Z: f' K- m: V8 g<!------指定要录入多少条记录-------------->( r# W9 P4 }: R7 K9 x
<form>* e2 }; C; ^+ H. l( p% l
您要录入的记录的条数:<input>9 T2 ?5 _7 N" x# l  D) I
<input>>">, V9 {" i6 V& j1 {, m
</form>% Q+ W/ s1 I1 Q4 ^' F! U( W1 ~
<%8 n" j" P. n. c0 H' W! D3 f2 g+ V
END SUB
2 A' q, u2 c) b) Q. X# E2 Tif request.form("action")="下一步>>" then0 U2 o9 d2 I0 ]; F) f6 O5 H; M& ~# ^
Call InputData() '显示成批录入界面
7 ?  x* U- \+ |  D- i- u, zelseif request.form("action")="提交" then Call writeData() '向数据库批量写入数据
; p$ l& z- O. \; I1 u7 L6 pelse
3 i* [7 Y. b% HCall assignHowMuch() '显示指定录入多少条记录的界面
5 V8 H6 t- [$ k! m0 X6 g$ z. yend if
7 M3 f0 ^& K7 }/ e0 m& i1 H% B
2 ^6 R9 {- h" Y6 D3 P2 S3 O%>
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
hyc0214 发表于 2005-9-14 02:38:58 | 显示全部楼层
唉,残缺不全啊!
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

 楼主| 冬冬 发表于 2005-9-14 02:49:41 | 显示全部楼层
是,残缺不全2 e$ `9 e  ~- p& I1 \
因为我是外网: d% A; I0 i+ u% b. e6 _

5 i: i3 [1 J" ~! ]; B% G$ t下午要发的时候,写了一半
1 @' Q2 ~  `+ ?6 C卡了
# @( l  W: f" y* O( K. a2 g; v: s! n' B0 m7 J0 M7 j6 J( s4 u
于是,就死了
* o4 U' o0 z- T7 R/ _1 o+ F- A- |( |9 m) s
+ Z$ k5 @+ ]+ Q3 z& Z. c, B2 r所以,就只有一半了! H  E9 o6 K+ k- D# r& {

2 ?- x# a$ N, z: o! m* g后来,干脆不上了
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

hyc0214 发表于 2005-9-15 06:01:08 | 显示全部楼层
再帮你补充5 N9 ?8 q% o7 _/ K. k
批量录入在数据库的应用中比较广泛的,关于批量录入的方法也有好多种。
0 c- k9 o" i. q! w( z! m下面我就结合我实际中的应用,谈一下我是怎么实现的。
8 f- ?1 B' R- [+ b主要用到的是form的集合的概念,通过循环取的所有的集合内数据。7 H+ i8 m- Y3 W0 u+ {$ H
考虑到大家看着方便,我把它集成到了一个页面。$ n- e$ P1 c) p! B" X
下面是具体的代码:
" w1 k  T& L8 I- }" DbatchInput.asp, }( V+ x- B& N4 e- }
<%; n- \" x6 O- o0 M. s
\'#####################################
8 T! k8 [& X, E" m: R8 i7 [$ C\'File Function:批量录入数据
1 d7 C- C/ B- D1 E3 t* t2 a+ Y& _\'Author:Myhon3 e# z, [! q, X: l1 D0 B" K
\'Date:2003-8-199 O5 G, O+ b" Y
\'#####################################
; m7 K$ e4 l1 Q/ S9 e\'向数据库写入数据7 V4 @6 `1 L4 R% t2 w! `* K
SUB writeData()
1 `2 {: c4 X$ s- \  Gdim recCnt,i! x' V) z8 C8 z( f
dim fieldName1,fieldName2,fieldName3
; g0 g/ I3 h: o( W  Ldim conn2 o8 h  J# P1 v* `. d
dim sqlStr,connStr
+ }$ k  x% s9 G$ E6 hconnStr=\"rovider=SQLOLEDB.1;Initial Catalog=myDatabase;Data Source=myhon;User Id=saASSWORD=\"
! S; S! V8 X# w- ^/ bset conn=Server.CreateObject(\"ADODB.Connection\")4 {/ l- z3 ^4 m# X6 t2 a" }
conn.open connStr \'建立数据库连接7 B( m- L# G" w9 Q
recCnt=request.form(\"stu_num\").count \'取得共有多少条记录
, M0 S& S& s. C7 i\'批量录入数据
3 ~" F/ c* r" Ufor i=1 to recCnt
, h" [; n7 }  V9 Z* ], B* f; E2 Q$ GfieldName1=trim(request.form(\"fieldName1\")(i))
! F" F: R5 I) W4 i, [' |, jfieldName2=trim(request.form(\"fieldName2\")(i))1 w3 V# p' C+ L. s2 D& [
fieldName3=trim(request.form(\"fieldName3\")(i))' v7 A1 e9 t$ w
sqlStr=\"insert into myTable(fieldName1,fieldName2,fieldName3) values(\'\"8 _' ^/ v. c# k$ D2 L
sqlStr=sqlStr & fieldName1 & \"\',\'\"  p& i# H' o, i# L) V- K
sqlStr=sqlStr & fieldName2 & \"\',\'\"9 e2 o1 S- B1 g* {) v
sqlStr=sqlStr & fieldName3 & \"\')\"/ n  O) j  ^% i# w6 z6 R5 Z
\'response.write sqlStr  S* g9 l) a1 d2 w; l; `+ i
conn.execute(sqlStr)
# g: K1 L0 P2 P* N9 Q/ W1 L2 Lnext
+ r0 a1 f1 h+ i! J2 O7 AEND SUB
' W1 R6 q' m' }3 D7 k$ W\'显示成批录入的界面5 ]  u6 D! u) J* ^5 u  e
SUB InputData()5 P5 p8 u) X8 M( ~
dim recCnt,i
- `) ~5 \- A0 E  Z; @/ E! I%><form><% : c) @" H5 p5 A1 A' p7 M' T% J
recCnt=cint(request.form(\"recCnt\"))6 y& y* I3 q% F4 M# a$ P
for i=1 to recCnt* _! L' k% h4 |" G
%><input><input><input><%( l) O/ H% Y; {) q
next. C+ h# f2 A+ y
%><br><input></form><%
# I/ A& K. ^( f( s7 q6 X4 kEND SUB
, a7 o0 ?. q2 }, o7 ]9 @  z\'指定要批量录入多少条记录( h3 C" B7 W: X: w) U% r( v3 s
SUB assignHowMuch()$ z5 N: i# i4 r
%><!------指定要录入多少条记录--------------><form>
% e0 b2 q( B9 ?/ G' S7 S您要录入的记录的条数::<input><input>>\"></form><%
0 Y+ Y2 }" [+ B2 OEND SUB
; C3 O+ h" R' F$ G! s" ]if request.form(\"action\")=\"下一步>>\" then
0 I, ]; C" e$ MCall InputData() \'显示成批录入界面9 e) S8 z" k+ D9 P
elseif request.form(\"action\")=\"提交\" then Call writeData() \'向数据库批量写入数据1 K9 L2 v. @, f, t! a
else
2 b# f3 l/ d7 FCall assignHowMuch() \'显示指定录入多少条记录的界面( m' l1 E+ a1 t+ k! g
end if
& ^9 j' _- P6 y8 x& H) C* k4 x%>
# I  g; c# ?# y又沾你的光了。。。
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

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

使用道具 举报

 楼主| 冬冬 发表于 2005-9-15 19:30:34 | 显示全部楼层
每次发贴都这样,只有一半!- ?- q4 m; w/ D9 ?' \2 P1 \
我都没有耐心了
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-26 08:53 , Processed in 0.063532 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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