2013-04-30 235 views
0

我正在开发一个应用程序,我需要将数据从Excel导入MS SQL Server数据库。 我的MS SQL Server计算机上,以及我的机器从Excel导入数据到SQL Server数据库使用Microsoft.ACE.OLEDB.12.0

配置的MS SQL服务器这样安装Microsoft Access Database Engine 2010 Redistributable:我使用

USE [master] 
GO 
sp_configure 'show advanced options', 1 
GO 
RECONFIGURE WITH OverRide 
GO 
sp_configure 'Ad Hoc Distributed Queries', 1 
GO 
RECONFIGURE WITH OverRide 
GO 
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1 
GO 
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1 
GO 

在我的应用程序:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=PathToMyExcelDoc', [Devices$]) 

当应用程序和SQL Server在同一台机器上时,它工作正常,但是当我在我的机器上运行应用程序并尝试将数据从Excel导入到远程SQL Server时,出现以下错误:

The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. The provider did not give any information about the error. 
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". 

回答

2

我一直面临同样的问题,我解决了它首先将excel保存到服务器,然后在OPENROWSET中传递该路径。

+0

所以你的意思是:当我浏览Excel文件时,我必须先将它上传到SQL Server所在的服务器,然后执行导入数据。 如果是,在这种情况下如何将文件上传到远程服务器?我正在研究WPF应用程序(C#)。 – Stacked 2013-04-30 09:37:56

+0

是当然..... 其实我仍然在学习WPF与这部分我可能不会很有帮助... – Timon 2013-04-30 09:43:51

+0

谢谢,但我的评论的第二部分(如何上传文件?)呢? – Stacked 2013-04-30 09:45:43

相关问题