"Microsoft.Ass.OLEDB.12.0" nicht erkannt, in Windows 10
Hintergrund
Ich entwickle eine Windows Form-Anwendung die Verbindung zu einer Microsoft Access-Datenbank.
Dies ist ein Beispiel-code, den ich verwenden in der Entwicklung:
try
{
string AccessFilePath = @"\.myDataBase.mdb"; //Path of the Access database.
string sqlStatement = "SELECT * FROM myTable WHERE IdTable = 5;";
string connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + AccessFilePath;
OleDbConnection conn = new OleDbConnection(connstr);
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = sqlStatement;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
MessageBox("Error: " + ex.Message);
}
Die folgende Liste beschreibt die Umgebung, die meine Entwicklung:
- Visual Studio 2015 Community
- Lösung erstellt im Rahmen .NET 4.0
- Betriebssystem: Windows 10 Pro - 64 bit.
- Diese Entwicklung muss die Arbeit auf Windows XP, Windows 7 und der oberen Versionen.
Hatte ich bereits installiert:
- 2007 Office System Driver: Data Connectivity Components
- Microsoft .NET 4.0 (in Windows XP und anderen Computern wer es braucht)
Fragen
In meinem PC die Windows 10 Pro OS, ich Suche in der C:/ Festplatte und ich fand, dass ACEOLEDB.DLL ist bereits in den folgenden Verzeichnissen installiert:
Dies ist vor installieren Sie die Data-Connectivity-Komponenten:
- C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16
- C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15
- C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14
Klicken Sie um das Bild zu vergrößern:
Installiert als ich die Data-Connectivity-Komponenten in meinem PC, die ACEOLEDB.DLL befindet sich unter:
- C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared
Ich weiß wirklich nicht, warum auch nach installieren von Data-Connectivity-Komponenten ich bin noch immer dieser Fehler:
"Der 'Microsoft.Ass.OLEDB.12.0' - provider ist nicht registriert auf der lokalen Maschine"
Fragen
- Wie Data Connectivity-Komponenten erfolgt durch das OS?
- Wie man überprüfen kann, ob korrekt, wenn OS hat die Daten-Konnektivitätskomponenten installiert?
in CPU
Ändern Sie es zu x86.
Ich kann es nicht. Die einzige option, die verfügbar ist CPU
Sind Sie auf der Suche an der richtigen Stelle? Eigenschaften -> Erstellen -> Plattform Ziel
InformationsquelleAutor Mauricio Arias Olave | 2016-08-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach änderung der Plattform Ziel zu x86 als Benutzer LarsTech schlug in seinem Kommentar, in der Endbenutzer-Maschinen mit Windows 7 OS und keine Office-suite installiert. Es funktionierte korrekt.
Ich aber, dass diese änderung würde ausreichen, aber aus irgendeinem unbekannten Grund, in meinem PC war das nicht.
So, ich habe die Forschung wieder und ich habe ein ähnliches problem hier.
Den workaround in dieser besonderen situation installieren:
Microsoft Access 2010 Runtime
In meinem Fall folgende ACEOLEDB.DLL Einträge erstellt wurden:
Ich denke, dass der Letzte Eintrag wurde von der 2010-Runtime-installation.
InformationsquelleAutor Mauricio Arias Olave