aaa="provider=Microsoft.Jet.OLEDB.4.0; Data Source="&excel地址&";Extended Properties=Excel 8.0" set StrConnect=CreateObject("ADODB.Connection") StrConnect.Open aaa Set rs = Server.CreateObject("ADODB.Recordset") Sql="select * from ["&表格名&"] order by id" rs.Open Sql,StrConnect,1,2 Do While Not rs.EOF sql="select * from 数据库表名" Set rssql = Server.CreateObject("ADODB.Recordset") rssql.Open sql,conn,1,3 rssql.AddNew for k=1 to rs.fields.count-1 rssql(k)=rs(k) next rssql.Update rssql.close Rs.MoveNext Loop rs.close
这么一段代码,逐条读取excel记录上传至sql,但是我观察到,一开始一秒能上传90条记录,然后速度开始下降,直到后来一秒只能上传5条左右,不知道是怎么回事?请高手解答。
wputc990:
设置DB =的Server.CreateObject(“数据库所在”) db.Open“DRIVER = {Microsoft Excel驱动程序(* XLS)}; DBQ =”&使用Server.Mappath(文件名)
“打开记录集,表名必须以“[表名$]”格式
STRSQL =“SELECT * FROM [表Sheet1 $]”
设置rsexcel = db.Execute(STRSQL)
设置RS =的Server.CreateObject(“ADODB.RECORDSET”)
SQL =“SELECT * FROM [网友]”
rs打开SQL中,康恩,1,3
N =实验项目。计数1'数据表字段
M = rsexcel.fields.count-1'excel表格字段
REDIM L(N)'定义
REDIM ARR的数据表数组(M)定义excel表格数组
“在表中的数据表中的字段到列L
当k = 0到N
L(K)= RS(K)。命名
“表中的字段excel导入到数组ARR
对于p = 0到M
ARR(P)= rsexcel(P)。命名
'获取数组长度
X = UBOUND(L)
为y = UBOUND(ARR)
J = 0
STARTIME =定时器()'开始时间
做,而不是rsexcel.EOF
'循环读取
为x的所有行对于i = 6 “在数据表中循环RS(0)是ID所以跳过
如果L(I)= ARR(J),然后'两个表中的字段的数组判断是相同的,同样为它分配不一样设置0
如果修剪(rsexcel(十))>“”,然后
回复于修剪(rsexcel(十))&“|”
RS(I)=修剪(rsexcel(j)项)
RS(I)= 0
如果最终
当j <M然后'当最后execl的表的数据可以不加之一
当J = J +1
项目时= j的
结束,如果
RS(I)= 0 如果结束
RS(3)= typeid的
J = 0
结束时间=定时器()
集rsexcel =无
设置DB =无
aliang888:
你这个一条条读太慢了,你参考这个OPENDATASOURCE
sql="INSERT INTO SQL表名 (字段) Select Excel字段 From OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=NO;IMEX=1;DATABASE="&FilePath&"')...["&SheetName(i)&"]“
|