我在一个控制器中遇到了MVC C#应用程序的问题.
以下代码继续给出错误:
*The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.*
Run Code Online (Sandbox Code Playgroud)
代码如下:
var excel = new ExcelQueryFactory("~/App_Data/uploads/" + tempName);
var usersForImport = from c in excel.Worksheet<User>()
select c;
int count = usersForImport.Count();
for (int i = 0; i < count; i++)
{
User user = new User();
user = usersForImport.Skip(i).First();
db.Users.Add(user);
db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以前帖子中的2个解决方案,因为我认为这个问题是相同的,但它们并没有解决问题.
我尝试过的两个解决方案是安装Microsoft Access数据库引擎或为x86设置目标平台.
代码依赖于'linqtoexcel'包.
还有其他人遇到过这些问题吗?有解决方案吗
Joe*_*Joe 19
对于64位应用程序,有两种版本的ACE驱动程序可用:
适用于Office 2007的http://www.microsoft.com/en-us/download/details.aspx?id=23734
适用于Office 2010的http://www.microsoft.com/en-us/download/details.aspx?id=13255
我相信Office 2007版本有ProgId'Microsoft.ACE.OLEDB.12.0',所以我会试试这个而不是Office 2010,我认为它有ProgId'Microsoft.ACE.OLEDB.14.0'.
根据您的描述,看起来linqtoexcel包可能依赖于Office 2007版本.