我需要将Excel数据上传到SQL Server 2005表中。最初我将Excel数据复制到临时表,并根据条件更新并将记录插入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();
此致 沙迪亚
答案 0 :(得分:2)
这很可能是文件权限问题。该程序运行的帐户是否具有从文件位置读取文件的文件夹级别权限。
找出程序运行的帐户,然后为上传Excel文件的文件夹添加适当的访问权限。
如果是IIS,那么您的应用程序池运行的任何帐户都需要对您上传到的文件夹的写访问权限。权限通常只能由Web服务器管理员设置。
永
答案 1 :(得分:0)
最后我找到了解决方案。 我在Quality服务器的应用程序文件夹下创建了一个文件夹。 上传的Excel工作表将存储在此新文件夹下。 和我在更新我的SQL服务器数据库时引用的路径。 现在一切都很好...... 感谢大家的支持
此致 沙迪亚