<%
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中的数据导入到数据库中。在该过程中,出现错误时程序会继续执行而不是中断,这对于定位问题会产生困难。
因此,无法判断这段代码中出现了什么问题。为了确定问题所在,您可以通过以下措施进行排查:
检查连接字符串是否正确,如SQL Server数据库的用户名和密码是否正确,是否能够连接到指定的数据库。
检查Excel文件是否存在,文件路径是否正确,Excel文件是否包含正确的数据表名称或者数据表是否存在。
检查导入数据表的字段匹配是否正确,Excel中的数据是否符合导入数据表的要求,如数据类型是否匹配,是否存在空值,是否存在错误的数据格式等。
可以启用On Error语句的Error对象来对错误进行详细描述,从而更好地确定代码中的问题所在。
最好将代码分解成更小的功能块,测试每个功能块并确定其是否能够正常工作,以便更快地排除错误并修复问题。