2013-09-14 2 views
2

У меня проблема с приложением MVC C# в одном контроллере.Нет решения для ошибки «Microsoft.ACE.OLEDB.12.0»

Следующий код продолжает давать ошибку:

*The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.* 

Код ниже:

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(); 
} 

Я попробовал 2 решения из предыдущих постов, как я думал, что эта проблема была идентична, но они не решают проблему.

Два решения, которые я пробовал, - это установить Microsoft Access Database Engine или установить целевую платформу для x86.

Код основывается на пакете 'linqtoexcel'.

Неужели кто-то еще сталкивается с этими проблемами? Любые решения?

+1

Возможно, вы захотите рассказать нам о решениях, которые вы пробовали и уволили. Или, по крайней мере, ссылка на них. И, пожалуйста, дайте своему посту достойный титул. – Bart

+0

Извините, я не понимал, что установил плохой заголовок, но включил то, что я пробовал. – NickP

+0

Является ли ваше приложение ASP.NET-приложением? – Steve

ответ

17

Для 64-разрядных приложений, существуют две версии драйвера ACE доступны:

http://www.microsoft.com/en-us/download/details.aspx?id=23734 для офиса 2007

http://www.microsoft.com/en-us/download/details.aspx?id=13255 для офиса 2010

Я считаю, что версия Office 2007 имеет ProgId " Microsoft.ACE.OLEDB.12.0 ', поэтому я бы попробовал этот вариант, а не Office 2010, который, как мне кажется, имеет ProgId' Microsoft.ACE.OLEDB.14.0 '.

Из вашего описания, похоже, пакет linqtoexcel может зависеть от версии Office 2007.

+1

Вы правы. Он работает в 2007 году. Я уже устанавливаю 2010, не работает. после этого изменения к 2007 году. thank –

+1

2007 - это то, что мне нужно, спасибо. – jhilden

0

Я решил это в свойствах проекта, в закладке Build. Я изменил цель платформы с x64 на x86

Смежные вопросы