Was ist der OLE DB-Verbindungszeichenfolge für Access 2013?
Ich bin mit Visual Studio 2012 erstellen einer Web-Anwendung stellt die Verbindung zu einer Access-2013-Datenbank mit folgenden Programmier-line:
string connectionString = "provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + Page.Server.MapPath("App_Data\\db1.accdb");
Aber es konnte nicht starten aufgrund der Fehlermeldung
Microsoft.Ass.OLEDB.12.0 ist nicht im lokalen Maschine
Was ist der richtige connection string für Microsoft Access 2013?
- Haben Sie sichergestellt, dass
Page.Server.MapPath()
gibt einen gültigen Pfad, da ansonsten diese Verbindungszeichenfolge scheint in Ordnung. Finden Sie Verbindungszeichenfolgen hier. - das ist meine Datenbank zuordnen ich schon überprüfen
- Ich machte noch ein edit zu meiner Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Computer als web-server muss die "Microsoft Access Database Engine 2010" installiert. Wenn das Gerät keinen Access installiert ist, dann herunterladen können Sie das Installationsprogramm für den Motor hier.
Beachten Sie, dass die 64-bit-Installationsprogramm enthält die 64-bit-version nur; es schließt nicht die 32-bit-version (separat erhältlich auf derselben Seite).
Bearbeiten...
Als für die Verbindungszeichenfolge, die ich gerade getestet, das folgende VBScript auf meinem Access_2013 Maschine und es funktionierte gut.
Kopierte ich die Verbindungszeichenfolge aus connectionstrings.com.
Bearbeiten...
Wenn Sie Zugriff auf die web-server, Sie können überprüfen für die Existenz der beiden folgenden Dateien:
Auf einem 64-bit-Computer der ersten Datei angibt, dass die 64-bit version der Access-Database-Engine installiert ist. Auf einem 32-bit-Maschine zeigt es an, dass die 32-bit-version installiert ist.
Wenn die zweite (x86) Datei existiert, dann wissen Sie, dass die 32-bit version der Access-Datenbank-Engine auf einem 64-bit-Maschine.
Bearbeiten re: letzter Kommentar
War das problem tatsächlich im Zusammenhang mit der "bitness" der Access-Datenbank-Engine:
Page.Server.MapPath("App_Data\\db1.accdb")
ist wieder ein Gültiger Pfad zu der .accdb-Datei. Der einzige wesentliche Unterschied zwischen unseren connection-strings ist, dass meine hattenPersist Security Info=False;
geheftet, der auf die Ende, und ich glaube nicht, dass das weglassen es würde bewirken, dass die Fehlermeldung, die Sie beschreiben.;
. Ich weiß, dass es nicht immer erforderlich, aber vielleicht in diesem Fall seiner Abwesenheit in Unordnung Dinge. In der Tat, warum nicht versuchen, einfach Anhängen;Persist Security Info=False;
auf Ihre vorhandene Verbindungszeichenfolge und sehen, ob das hilft.hier verwenden Sie diese
dies ist der connection string für ms access 2013
Hängt es mit dem office, die Sie installiert haben, wenn Sie die x64-bit-office, dann müssen Sie kompilieren Sie die Anwendung als x64 zu ermöglichen es zu laufen, also, wenn Sie wollen, dass es laufen auf x36 dann müssen Sie office installieren, x86 zu akzeptieren, ich habe versucht, alle oben genannten Lösungen, aber keiner war, bis ich merkte, ich hatte office x64bit und so baute ich die Anwendung als x64 und arbeitete.
Ich erkannte auch, dass, wenn Sie legen Sie es auf jeder cpu aber nicht setzen, um prefere 32 bit funktioniert auch
Lassen Sie den Anbieter, um 12.0, es funktioniert für ACCESS 2013
installieren Sie einfach diese 2 Elemente:
1)Microsoft Access 2013 Runtime:
https://www.microsoft.com/en-us/download/details.aspx?id=39358
dann
2)microsoft access database engine 2007:
https://www.microsoft.com/en-us/download/details.aspx?id=23734
PS: x86 für 32-bit & x64 für 64-bit.