我想把excel的数据插入sql数据库中,我的代码如下:
set conn1=server.CreateObject("adodb.connection")
Conn1.Open "PROVIDER=SQLOLEDB;DATA SOURCE=hhfu3;UID=sa;PWD=hhfp;DATABASE=chy0g02"
运行后提示:Microsoft OLE DB Provider for SQL Server 错误 '80040e14',列名 'jh' 无效。/cy0502/sjcx/add_water2.asp,行 24
我的字段没有错的,是怎么回事?用 OpenDataSource,怎么才能把excel的数据插入到sql数据库中?
运行后提示:Microsoft OLE DB Provider for SQL Server 错误 '80040e14',列名 'jh' 无效。/cy0502/sjcx/add_water2.asp,行 24
这个提示非常明确的说明了问题所在,在你的/cy0502/sjcx/add_water2.asp 文件中的24行的SQL语句中的 列名 'jh' 无效
列名jh无效,说明数据库没有jh列。执行sql前用Response.Write 输出sql语句看看,肯定是有问题或者字段名拼写错误
sql=".........."
response.write sql''''''''''''''
response.end''''''''''''''
我的代码是这样写的
set conn1=server.CreateObject("adodb.connection")
Conn1.Open "PROVIDER=SQLOLEDB;DATA SOURCE=hhfu3;UID=sa;PWD=hhfp;DATABASE=chy0g02"
sql="INSERT INTO wycy002 (jh,rq,scsj,rzsl,rpzsl) Select jh,rq,scsj,rzsl,rpzsl From OpenDataSource('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=NO;IMEX=1;DATABASE=E:ccy0502\data\wcyy002.xls')...[sheet1$]"
conn1.Execute(sql)
运行后提示:Microsoft OLE DB Provider for SQL Server 错误 '80040e14',列名 'jh' 无效。/cy0502/sjcx/add_water2.asp,行 24
把你这个数据库里的wycy002这个表的表结构贴出来看看,肯定是列名不匹配,比如有大小写区分
你的sql是 INSERT INTO wycy002 (jh,rq,scsj,rzsl,rpzsl)
这个括号里的jh是指wycy002这个表里的jh字段,但从你贴出来的字段名来看,实际wycy002这个表并没有jh字段,只有JH,所以会报错
你先登录到数据库里,单独执行一下insert语句后面的那个查询看看,另外,那个文件地址你自己确认一下准确性
Select jh,rq,scsj,rzsl,rpzsl From OpenDataSource('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=NO;IMEX=1;DATABASE=E:\ccy0502\data\wcyy002.xls')...[sheet1$]
上面这个如果报字段不存在,就查下面这个,看看它识别出来的字段名到底是个啥
Select * From OpenDataSource('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=NO;IMEX=1;DATABASE=E:\ccy0502\data\wcyy002.xls')...[sheet1$]
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!