将Excel数据上传到SQL Server 2005时出错

我有一个需要将Excel数据上传到SQL Server 2005表。 最初我将Excel数据复制到一个临时表,并根据条件我已经更新并插入logging到SQL Server表。

一切工作正常在我的本地系统。 同样的程序,我搬到了质量服务器,我面临这个错误

“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。

然后我们在质量服务器上安装了Microsoft.ACE.OLEDB.12.0提供程序。 现在出现这个错误

Microsoft Office Access数据库引擎无法打开或写入文件“”。 它已经被其他用户专门打开,或者您需要查看和写入其数据的权限。“

请帮我解决这个问题。

SqlConnection con = new SqlConnection(); con = SQLManager.openSQLConnection(); string path = FileUpload1.PostedFile.FileName; string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0 Xml;Persist Security Info=False"; //Create Connection to Excel work book OleDbConnection excelConnection = new OleDbConnection(excelConnectionString); OleDbCommand cmd = new OleDbCommand("Select [CM_CODE],[CM_NAME],[CM_ADD1],[CM_ADD2],[CM_ADD3],[CM_ADD4],[CM_CITY],[CM_PHONE],[CM_CG_CODE],[CM_CO_CODE],[CM_EXPIRY_DATE],[CM_PINCODE],[CM_EMAIL] from [Sheet1$]", excelConnection); excelConnection.Open(); OleDbDataReader dReader; dReader = cmd.ExecuteReader(); 

问候,沙迪亚

这很可能是一个文件权限问题。 程序运行的帐户是否具有从文件位置读取文件的文件夹级权限。

找出程序在哪个帐户下运行,然后为上传Excel文件的文件夹添加适当的访问权限。

如果是IIS,那么无论您的应用程序池在哪个帐户下运行,都需要对您上传到的文件夹进行写入访问。 权限通常只能由Web服务器pipe理员设置。

翅膀

最后我find了解决办法。 我在质量服务器的应用程序文件夹下创build了一个文件夹。 上传的Excel表格将存储在这个新的文件夹下。 和我更新我的SQL服务器数据库时指的path。 一切正常,现在…谢谢大家的支持

问候,沙迪亚