Le fournisseur Microsoft.ACE.OLEDB.12.0&#39 ; n'est pas enregistré sur la machine locale.

J&#8217essaie d&#8217obtenir des données d&#8217un fichier Excel lors d&#8217un événement de clic de bouton. Ma chaîne de connexion est la suivante :

 string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\source\\SiteCore65\\Individual-Data.xls;Extended Properties=Excel 8.0;";

Lorsque je clique sur le bouton, j'obtiens l'erreur suivante :

Le 'Microsoft.ACE.OLEDB.12.0&#39 ; fournisseur n'est pas enregistré sur la machine locale.

Je n'ai aucune idée de la façon de résoudre ce problème. Mon système d'exploitation est Windows 7.

Solution

Eh bien, vous devez l'installer. Tu cherches :

Commentaires (12)

Une version 64 bits du 'Microsoft Access Database Engine 2010 Redistributable&#39 ; qui vous permettra d'utiliser le fournisseur 'Microsoft.ACE.OLEDB.12.0&#39 ; est disponible ici:
http://www.microsoft.com/en-us/download/details.aspx?id=13255

Si vous utilisez le téléchargement de la réponse acceptée, vous devrez construire pour x86, comme l'a souligné @backtestbroker.com.

Commentaires (8)

J'ai obtenu cette erreur/exception dans Visual Studio 2010 lorsque j'ai modifié ma construction dans la boîte de dialogue du gestionnaire de configuration de "x86&quot ; à "Any CPU&quot ;. D'après ce que j'ai compris, ce pilote de base de données OLEDB ne fonctionne qu'en x86 et n'est pas compatible avec les 64 bits. La modification de la configuration de construction pour revenir à x86 a résolu le problème pour moi.

Commentaires (2)