2013-08-27 49 views
0

我有要求将excel数据上载到SQL Server 2005表中的要求。最初我将Excel数据复制到一个临时表,并基于条件我已更新并将记录插入到SQL Server表中。将Excel数据上传到SQL Server 2005时出错2005

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

的“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(); 

问候, 沙迪亚

+0

是否服务器进程有权访问文件路径或可它甚至看到了吗? –

+0

我通过由我的应用程序组成的URL访问服务器系统。 Excel工作表上传来自我的系统,通过我的应用程序。 – Sathya

+0

如果你通过你的网站上传一个excel文件,IIS可能仍然在处理文件的上传,而你的进程试图访问这个文件,因此给你看到的错误。 –

回答

2

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

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

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

Wing

0

最后我找到了解决方案。 我在质量服务器的应用程序文件夹下创建了一个文件夹。 上传的Excel表格将存储在这个新文件夹下。 以及我在更新我的SQL服务器数据库时所指的路径。 一切正常,现在... 感谢ü所有的支持

问候, 沙迪亚

相关问题