纳兰小羽

宁做默默无闻的小草,也不做喧喧嚷嚷的鲜花

excel 数据导入到sql server 数据库中

这两天做一个关于excel批量导入到sql server 数据库的小工具。

 

在网上广泛的搜索了一下发现并不难,最简单的一种方式就是用sql中自带的一种导入工具,只要用一句t-sql语句就可以搞定了。语句如下:

SELECT   *  into Student FROM   OpenDataSource
(   'Microsoft.Jet.OLEDB.4.1,
 'Data   Source= "f:/student.xls";User ID=Admin;Password=;Extended properties="Excel 8.0;HDR=YES;IMEX=1"')
...Sheet1$

 

如法炮制之后发现,语句不可以执行,提示错误信息:“sql server 阻止了对组建 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

 

于是运行sql 语句启用Ad Hoc Distributed Queries:

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

 

运行依旧出错:

 

当我查阅n资料后发现可能是access 版本问题,查询了自己机器上的版本是2000的,于是把接口改变成 Microsoft.Jet.OLEDB.3.51。开始还是提示错误:

 

测试过n多方法,也搜索过很多答案,结果还是没有给解决了,很是郁闷啊。

由此也发现在学校里面我们学的太狭隘了,知识面不够广,层次不够深。所以遇到问题只好去百度,百度出来一大堆不知道是正确的还是错误的方法,然后一个个进行实践。幸运的人很快的发现了答案,不幸的人在苦苦寻找着但未果。这里要说的是网络是个好东西,但是未必可以让你高效办公。

 

同时也希望各位高手可以帮我看看这个问题到底是怎么回事?

注:在导入的过程中我的excel文件是关闭的;

 

阅读更多
个人分类: c#学习笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭