c# - the - microsoft ace oledb 16.0 download




Der Anbieter "Microsoft.ACE.OLEDB.12.0" ist nicht auf dem lokalen Computer registriert (20)

Überprüfen Sie zuerst, welche Version von microsoft.ace.oledb.12.0 in Ihrem System installiert ist.

Überprüfen Sie den Pfad C: \ Programme \ Gemeinsame Dateien \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL - 64 Bit ist installiert

Überprüfen Sie den Pfad C: \ Programme (x86) \ Gemeinsame Dateien \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL - x86 Bit ist installiert

Wenn (x86) installiert ist, verwenden Sie den Konfigurationsmanager, ändern Sie die Lösungsplattform auf x86, für x64 ändern Sie sie auf x64.

Wenn nicht verfügbar, installieren Sie den folgenden Link

https://www.microsoft.com/en-us/download/details.aspx?id=23734

Ich versuche, Daten aus einer Excel-Datei über ein Klickereignis zu erhalten. Meine Verbindungszeichenfolge ist:

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

Wenn ich auf den Button klicke, bekomme ich folgenden Fehler:

Der Anbieter "Microsoft.ACE.OLEDB.12.0" ist nicht auf dem lokalen Computer registriert.

Ich habe keine Ahnung, wie ich das beheben kann. Mein Betriebssystem ist Windows 7.


// Lies die .xls-Datei

string strConnection = "";<br/>

string FileName = Server.MapPath("Student.xls");

strConnection = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0; HDR=Yes;IMEX=1;'";<br/>

try
{
    OleDbConnection conn1 = new OleDbConnection(strConnection);
    conn1.Open();
    DataTable dt = new DataTable();
    dt = conn1.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });

    Object sheetName = dt.Rows[0]["TABLE_NAME"];
    dt.Clear();
    dt.Columns.Clear();
    OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + sheetName.ToString() + "]", conn1);
    da.TableMappings.Add("Table", "0");
    da.Fill(dt);

    for (int i = 0; i < dt.Rows.Count; i++)
    {
        string ID = dt.Rows[i][0].ToString();
        string Name = dt.Rows[i][1].ToString();
        string City = dt.Rows[i][2].ToString();
        string Marks = dt.Rows[i][3].ToString();
    }
    conn1.Close();
}
catch
{
    throw;
}
//To Read xlsx file use following code
string strConnection = "";  <br/>
string FileName = Server.MapPath("Student.xlsx"); <br/>
strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties='Excel 12.0 Xml;HDR={1};IMEX=1;'";<br/>

try
{
    OleDbConnection conn1 = new OleDbConnection(strConnection);
    conn1.Open();

    DataTable dt = new DataTable();
    dt = conn1.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });

    Object sheetName = dt.Rows[0]["TABLE_NAME"];
    dt.Clear();
    dt.Columns.Clear();
    OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + sheetName.ToString() + "]", conn1);
    da.TableMappings.Add("Table", "0");
    da.Fill(dt);
    //int idx=0;
    //int j=0;
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        string ID = dt.Rows[i][0].ToString();
        string Name = dt.Rows[i][1].ToString();
        string City = dt.Rows[i][2].ToString();
        string Marks = dt.Rows[i][3].ToString();
    }

    conn1.Close();
}
catch
{
    throw;
}

// Installieren Sie jetzt AccessDatabaseEngine.exe über den Link " http://www.microsoft.com/en-us/download/confirmation.aspx?id=23734 "

Es wird 100% funktionieren


Abhängig von der App (32 / 64bit) über die Verbindung können Sie einfach installieren

Zusammenfassung:

  • Alle Büros von 2007-2016 enthalten den Anbieter "Microsoft.ACE.Oledb.12.0"
  • Abhängig von Ihrer Anwendungsarchitektur wählen Sie die passende Laufzeit-Engine (32/64)
  • überprüfe deine Provider mit dem powershell-Befehl von 32 und 64bit shell :

    (New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION 
    
  • und Sie werden sehen, welcher Anbieter Ihr System verwenden kann

Die lange Geschichte: Die Strings können mit http://live.sysinternals.com/strings.exe

z.B. auf einem 64-Bit-System mit 32-Bit-Treibern installiert

strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\MSO.DLL" | findstr "ACE.O"
strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL" | findstr "ACE.O"
strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\MSO.DLL" | findstr "ACE.O"

auch im kommenden Büro 2016

c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\OFFICE16\MSO.DLL
c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\MSO.DLL

Sie werden die Saiten finden

  • Microsoft.ACE.OLEDB

  • Microsoft.ACE.Oled.12.0

Das Office 2013 kommt auch mit csi.dll

c:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Csi.dll
c:\Program Files\Common Files\Microsoft Shared\OFFICE15\Csi.dll

das enthält die " Microsoft.ACE.OLEDB.15.0 "

und Büro 2016

c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\OFFICE16\Csi.dll
c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\Csi.dll

welches die Version " Microsoft.ACE.OLEDB.16.0 " hat


Das erste, was Sie überprüfen müssen, ist Ihre Build-Konfiguration Ihrer Anwendung.

  • Wenn Sie Ihr Projekt unter der x86-Plattform erstellt haben , sollten Sie zur Behebung des Problems die folgenden Pakete auf Ihrem Computer installieren:

    1. Um den Provider 'Microsoft.ACE.OLEDB.12.0' zu verwenden, müssen Sie zuerst den Microsoft Access-Datenbankmodul 2010 Redistributable installieren. Diese Installation ist verfügbar unter: http://www.microsoft.com/download/en/details.aspx?id=13255 .

      Nachdem die Installation abgeschlossen ist, versuchen Sie, die Anwendung auszuführen. Wenn dies das Problem löst, fahren Sie andernfalls mit Schritt 2 fort.

    2. Dieser nächste Schritt ist eine unerklärte Problemumgehung, die für Office 2010 funktioniert, obwohl es die Data Connectivity Components von Office 2007 ist. Ich bin nicht ganz sicher, warum das funktioniert, aber es funktioniert und das hat sich in fast allen Fällen bewährt. Sie müssen den 2007 Office System-Treiber installieren: Data Connectivity Components , diese Installation ist verfügbar unter: http://www.microsoft.com/download/en/confirmation.aspx?id=23734 .

      Nachdem diese Installation abgeschlossen ist, versuchen Sie, Ihre Anwendung auszuführen. Dies sollte das Problem beheben.

  • Wenn Sie versuchen, eine Anwendung auszuführen , die unter x64- oder AnyCPU-Plattform erstellt wurde , würde ich zunächst empfehlen, dass sie unter der x86-Plattform wie erwartet ausgeführt wird. Für den Fall, dass es nicht unter dieser x86-Plattform ausgeführt wird, führen Sie die Schritte im ersten Teil aus und überprüfen Sie, ob es wie erwartet ausgeführt wird.

    Ich habe gelesen, dass die MS Access-Treiber einschließlich des OLEDB-Datenbanktreibers nur unter der x86-Plattform funktionieren und unter der x64- oder AnyCPU-Plattform nicht kompatibel sind. Aber das scheint unwahr zu sein. Ich habe bestätigt, dass meine Anwendung beim Erstellen von x86 ausgeführt wurde. Dann habe ich Access Database Engine mit dem passiven Flag installiert.

    1. Laden Sie die Datei zuerst lokal herunter. Sie können die Installation hier herunterladen: http://www.microsoft.com/en-us/download/details.aspx?id=13255
    2. Installation über die Eingabeaufforderung mit dem Flag '/ passiv'. Führen Sie in der Eingabeaufforderung den folgenden Befehl aus: 'AccessDatabaseEngine_x64.exe / passiv'

    Nach diesen 2 Schritten konnte ich meine Anwendung nach dem Erstellen in x64 oder AnyCPU Build-Konfiguration ausführen. Dies schien mein Problem zu lösen.

Hinweis: Die Reihenfolge der Schritte scheint einen Unterschied zu machen. Bitte folgen Sie den Anweisungen.


Eine 64-Bit-Version von 'Microsoft Access-Datenbankmodul 2010 Redistributable', mit der Sie den Anbieter 'Microsoft.ACE.OLEDB.12.0' verwenden können, ist hier verfügbar:
http://www.microsoft.com/en-us/download/details.aspx?id=13255

Wenn Sie den Download von der akzeptierten Antwort verwenden, müssen Sie für x86 erstellen, wie von @ backtestbroker.com angegeben.


Es hängt mit dem Büro, das Sie installiert haben, wenn Sie x64-Bit-Office haben, dann müssen Sie die Anwendung als x64 kompilieren, damit es ausgeführt wird, also wenn Sie es auf x36 ausführen möchten, müssen Sie Office x86 installieren, um zu akzeptieren, habe ich versucht Alle Lösungen oben, aber keine funktionierte bis ich erkannte, dass ich Büro x64bit hatte und so baute ich die Anwendung als x64 und arbeitete


Ich folgte den Anweisungen anderer. Installation dieses Patches, Installation dieses Patches sowie des Microsoft Access Database Engine 2010.

Mein Problem war, dass ich die selbe Bibliothek (linq2sql) in 2 Sites auf meinem Rechner benutze; 1 funktioniert und 1 nicht.

Irgendwann stellte ich fest, dass ich in den erweiterten Einstellungen des Apppools für meine nicht funktionierende Site "32-Bit-Anwendungen aktivieren" musste.

Alles funktioniert jetzt gut.


Ich habe ähnliches Problem, wenn wir Excel-Datei lesen.

Geschichte des Problems:

Wir haben unsere Anwendung aufgrund der Speicheranforderungen kürzlich von 32-Bit auf 64-Bit migriert. Dafür haben wir unsere Windows 7 von 32-Bit auf 64-Bit migriert. Aber wir haben immer noch 32-Bit-Office auf unseren Maschinen installiert.

weil dieses Problem beim Importieren von Excel-Daten in die Anwendung aufgetreten ist.

Lösung,

Ich habe eine 64-Bit-Version von http://www.microsoft.com/en-us/download/details.aspx?id=13255 heruntergeladen und mit einem Argument installiert,

AccessDatabaseEngine_x64.exe / passiv

Ohne Code-Änderung wird mein Problem gelöst.

Hinweis:

Unter 64-Bit-Betriebssystem und 64-Bit-Office funktionierte meine Funktionalität ohne diese Korrektur. Dieser Fix wird nur benötigt, wenn unsere Anwendung 64-Bit auf einem 64-Bit-Betriebssystem ausführt, auf dem 32-Bit-Office installiert ist.


Ich habe diese Fehlermeldung / Ausnahme in Visual Studio 2010 erhalten, als ich mein Build im Dialogfeld "Configuration Manager" von "x86" in "Any CPU" geändert habe. Dieser OLEDB-Datenbanktreiber, den ich verstehe, funktioniert nur in x86 und ist nicht 64-Bit kompatibel. Das Ändern der Build-Konfiguration zurück zu x86 löste das Problem für mich.


Ich habe diesen Fehler beim Importieren von Daten aus einer Excel-Datei in MS-SQL erhalten. Der Provider war bereits installiert (64-bit) und das überraschte mich, warum es nicht funktionierte. Also habe ich nur die Import / Export-Anwendung gefunden, die hier verwendet wird, zB .EXE. Und ich habe es gefunden

C: \ Programme \ Microsoft SQL Server \ 130 \ DTS \ Binn \ DTSWizard.exe

Ich führte dann direkt die .exe aus, um den Datenimport durchzuführen. Und es hat funktioniert!


Ich hatte das gleiche Problem, aber in diesem Fall Microsoft-ace-oledb-12-0-Provider wurde bereits auf meiner Maschine installiert und funktioniert gut für andere Anwendungen entwickelt.

Der Unterschied zwischen dieser Anwendung und der, mit der ich das Problem hatte, war, dass die alten Anwendungen auf " Local IIS " ausgeführt wurden, während die mit dem Fehler " IIS Express (von Visual Studio aus ausgeführt) war. Also was ich getan habe war-

  1. Klicken Sie mit der rechten Maustaste auf Projektname.
  2. Gehe zu Eigenschaften
  3. Gehe zum Web Tab auf der rechten Seite.
  4. Wählen Sie unter Server Lokale IIS und klicken Sie auf die Schaltfläche Virtuelles Verzeichnis erstellen.
  5. Führen Sie die Anwendung erneut aus und es hat funktioniert.




So wie ich es auf verschiedenen Computern gelöst habe:

Ich habe eine Windows 7 32bit-Maschine mit Visual Studio 2012, die die Access-Datenbank nicht hatte, weil ich das Office 2010 nicht habe. Ich kopierte dieselbe Quelle, die ich in meiner Windows 7 64-Bit-Maschine hatte.

Also, ich habe die AccessDatabaseEngine in diesem Windows 7 32-Bit-Rechner installiert, nachdem ich sie hier oben von anderen Vorschlägen heruntergeladen habe und alles hat gut funktioniert.

Ich hatte immer noch das Problem auf meiner Windows 7 64-Bit-Maschine, die bereits Office 2010 enthält, die bereits Access 2010 enthält. Die Art und Weise, die ich auf diesem Computer löste, war in das PROJECT, ausgewählte Eigenschaften, und auf Platform-Ziel hatte jede CPU, die ich überprüft Prefer 32-Bit. Neu kompiliert / Build und der Microsoft.ACE.OLEDB.12.0 'Provider ist nicht auf dem lokalen Rechner registriert Nachricht war weg.



Wenn Sie ein Webprojekt debuggen, stellen Sie sicher, dass IIS Express abhängig von Ihren Projekteinstellungen entweder in 32 oder 64 Bit ausgeführt wird.

Gehe zu

Extras> Optionen> Projekte und Lösungen> Webprojekte

und von dort überprüfen (oder deaktivieren) die "64-Bit-Version von IIS Express verwenden ..."



syp_dino,

Die Lösung für mich, wie Sie für den Provider "Microsoft.ACE.OLEDB.12.0" vorgeschlagen haben, ist nicht auf dem lokalen Rechner registriert " ist die Änderung der Active Solution Platform von" Any CPU "auf" x86 ".

Als ich diese Schritte durchführte, die Lösung neu erstellte, die EXE-Datei griff und im Netzwerk platzierte, funktionierte alles reibungslos auf der Windows 7 64-Bit-Maschine.


  • Ich habe tagelang mit demselben Problem konfrontiert. Ich habe OLEDB-Treiber für 64 Bit installiert, habe auch 32 Bit ausprobiert, die auf der Microsoft-Website verfügbar sind.
  • Ich habe versucht, Office 64bit Version auch irgendwie neu zu installieren es hat nicht funktioniert. Erprobt, 32-Bit-Anwendung im IIS-Pool zulassen zu lassen.
  • Erprobt Änderung der Projektumgebung auf X86, AnyMachine, Mixed. Und fast alles versucht, was ich im Internet finden konnte. Aber alle Lösung hat mich enttäuscht.
  • Obwohl ich endlich erfahren habe, dass der Provider, den wir heruntergeladen haben, der letzte war und auch nicht damit gearbeitet hat.
  • Ich habe es deinstalliert und oledb Treiber 14.0.7015.1000 installiert. Ich habe den Link nicht dafür, wie ich es von den Betriebsmitteln des Unternehmens bekommen habe, Sie müssen möglicherweise es googeln, aber es funktioniert. Ich kam auf dieses DOWNLOAD-LINK von Microsoft und es funktionierte auch ... aber es ist Version 14.0.6119.5000, aber es funktionierte.




ole