ASP读取Excel存数据库不成功,请教!

<%
On Error Resume Next
Response.Expires=0
if Request.TotalBytes  then
  set a=createobject("adodb.stream")
  a.Type=1
  a.Open
  a.write Request.BinaryRead(Request.TotalBytes)
  a.Position=0
  b=a.Read
  c=chrB(13)&chrB(10)
  d=instrb(b,c)
  e=instrb(d+1,b,c)

   set f=createobject("adodb.stream")
   f.type=1
   f.open
   a.Position=d+1
   a.copyto f,e-d-3
   f.Position=0
   f.type=2
   f.CharSet="GB2312"
   g=f.readtext
   f.Close
   h=mid(g,instrRev(g,"\")+1,e)
   i=instrb(b,c&c)+4
   j=instrb(i+1,b,leftB(b,d-1))-i-2  
   f.Type=1
   f.Open
   a.Position=i-1
   a.CopyTo f,j
   filename=year(now)&"年"&month(now)&"月"&day(now)&"日"&hour(now)&minute(now)&second(now)&"导入物品"
   f.SaveToFile Server.MapPath("data\"&filename&".xls"),2 
   f.close
   
  set f=Nothing
      a.Close
  set a=Nothing
end if

strAddr = Server.MapPath(".") 
datas=strAddr & "\Data\"&filename&".xls"
set conn=server.createobject("adodb.connection")
conn.open "driver={Microsoft Excel Driver (*.xls)};DBQ="&datas
Sql="Select * From [Sheet1$]"
set rsexcel=server.CreateObject("adodb.recordset")
rsexcel.open Sql,conn,1,3
 if rsexcel.bof and rsexcel.eof then  
   response.Write("<script>alert('没有资料可以导入!');history.go(-1)</script>")
   else
    Set db = Server.CreateObject("ADODB.Connection")
    db.open"provider=sqloledb;datasource=(local);uid=sa;pwd=sa;database=ghzcgl;" 
    set rs = server.CreateObject("adodb.recordset")
    
     sql = "SELECT * FROM 实物资产信息"
    rs.open sql,db,1,3     
    do while not rsexcel.eof 
      rs.addnew
      rs("使用机构") = lcase(rsexcel("使用机构"))
      rs("物品编码") = lcase(rsexcel("物品编码"))
      rs("物品名称") = lcase(rsexcel("物品名称"))
      rs("物品品牌") = lcase(rsexcel("物品品牌"))
      rs("物品型号") = lcase(rsexcel("物品型号"))
      rs("供应商") = lcase(rsexcel("供应商"))
      rs("购买日期") = lcase(rsexcel("购买日期"))
      rs("购买价格") = lcase(rsexcel("购买价格"))
      rs("使用单位") = lcase(rsexcel("使用单位"))
      rs("备注") = lcase(rsexcel("备注"))
      rsexcel.movenext
    loop 
    rs.update
    rs.close
    set rs=nothing
    db.Close
    Set db=Nothing 
    rsexcel.close
    set rsexcel=nothing
    conn.Close
    Set conn=Nothing 
    end if  
    response.write "<script>alert('\n\物品导入成功!');history.go(-1);</script>"
%>
</body>
</html>

```c
执行数据库不成功,请问有什么问题?


```

在这段代码中,程序首先从Request的输入流中读取Excel文件数据,然后使用ADODB对象连接到本地的SQL Server数据库和Excel文件,最后将Excel中的数据导入到数据库中。在该过程中,出现错误时程序会继续执行而不是中断,这对于定位问题会产生困难。

因此,无法判断这段代码中出现了什么问题。为了确定问题所在,您可以通过以下措施进行排查:

  1. 检查连接字符串是否正确,如SQL Server数据库的用户名和密码是否正确,是否能够连接到指定的数据库。

  2. 检查Excel文件是否存在,文件路径是否正确,Excel文件是否包含正确的数据表名称或者数据表是否存在。

  3. 检查导入数据表的字段匹配是否正确,Excel中的数据是否符合导入数据表的要求,如数据类型是否匹配,是否存在空值,是否存在错误的数据格式等。

  4. 可以启用On Error语句的Error对象来对错误进行详细描述,从而更好地确定代码中的问题所在。

  5. 最好将代码分解成更小的功能块,测试每个功能块并确定其是否能够正常工作,以便更快地排除错误并修复问题。