将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。 一切正常,现在…谢谢大家的支持
问候,沙迪亚