In meiner Anwendung wird ein Benutzer zu einem Zeitpunkt soll (Span Mal, wenn er die Anwendung geöffnet hat) für die gesamte „Sitzung“ mit einer Access-DB-Datei arbeiten. Die Datei muss gesperrt sein, während ein Benutzer damit arbeitet.C# Wie man Access-Datei sperren und damit arbeiten?
ich dies tun, indem Schloss nach: How to lock a file with C#?
FileStream s2 = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.None);
jedoch, wenn die Datei über Code zugreifen, wird eine Ausnahme ausgelöst, zum Beispiel:
// Connection points to file locked before
using (OleDbConnection connection = new OleDbConnection(Connection)) {
connection.Open();
//...
System.Data. OleDb.OleDbException File wird bereits verwendet
Wie wird auf eine zuvor gesperrte Datei zugegriffen? Muss ich die Sperre immer entfernen, bevor ich darauf zugreife? Wenn ja, wie kann sichergestellt werden, dass zwischen dem Entsperren, Zugreifen und erneuten Sperren nicht auf die Datei zugegriffen wird?
Oledb, Access, Excel gemeinsame Nutzung von Dateien nicht richtig funktionieren.. Es wird empfohlen, keine Anwendungsgrundlagen auf oledb zu teilen. – jdweng
Gibt es in diesem Fall eine Lösung? Im Moment kann ich nur mit Access arbeiten und habe keine anderen Möglichkeiten, zu wechseln. Momentan erstelle ich selbst eine Lock-Datei und prüfe vorher, ob diese Datei existiert, aber das ist wirklich schrecklich. – ray
Sperren Sie einfach eine andere Datei. Wenn Sie 'some.mdb' haben, erstellen und öffnen Sie exklusiv' some.mdb.lock', bevor Sie darauf zugreifen. – Sinatr