2012-03-26 7 views
1

Ich habe eine. NET-Anwendung, die nicht auf einem Kollegen Computer funktioniert (er arbeitet remote, so dass es schwieriger ist, das Problem zu diagnostizieren). Der Fehler tritt auf, wenn Daten aus einer Access-Datenbank geladen werden. Hier ist der Code, den ich benutze, um die Daten zu laden:Zugriff Daten laden Fehler in. NET

var constring = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=X:\db.mdb"; 
OleDbConnection c = new OleDbConnection(constring); 
c.Open(); 
var dataSet = new DataSet(); 
var adapter = new OleDbDataAdapter("SELECT * FROM Table", c); 
adapter.Fill(dataSet); 
c.Close(); 

Was kann einen Fehler in dieser Phase verursachen? Wird dieser Code beschädigt, wenn Access nicht installiert ist oder die falsche Version? Welche anderen Dinge könnten dazu führen, dass dieser Code bricht?

Edit: Nicht C: \, aber X: \, das ist ein freigegebenes Netzlaufwerk.

+5

Welcher Fehler ist es? Verwenden Sie Breakpoints, um es genau auf die spezifische Linie einzugrenzen, die Ihnen Kopfschmerzen bereitet. –

+5

Stellen Sie den tatsächlichen Fehler würde – Quintium

+0

@Daniel helfen, ist sein Kollege entfernt. Obwohl das würde definitiv helfen, wenn es möglich wäre – Simon

Antwort

1

Auf den ersten Blick; - kein Anbieter in der Maschine ist - es gibt keine Quelldatei C: \ db.mdb - Quelldatei (Datenbank) ist nicht richtig (kein Tabellenname Tabelle)

+0

Wenn es ein sehr altes XP-System ist, sollte dieser Anbieter vorhanden sein .. wahrscheinlich DB ist nicht vorhanden ... – gbianchi

+0

Darüber hinaus hat der Benutzer möglicherweise keine Berechtigungen für die Datei c: \ db.mdb – Cronan

+0

Db ist nicht vorhanden? Was bedeutet das? Können Sie das bitte näher ausführen? – sooprise

1

Natürlich, da Sie nicht haben sagte, was Fehler Sie haben, ist dies nur eine Vermutung:

Ich habe viele Fälle gesehen, wo Jet-Leistung über eine VPN-Verbindung ist schmerzhaft langsam. Dies führt oft zu einem Versuch, das Daten-Timing auszulesen. Ist die Datenbank wirklich bei C:\db.mdb? Wenn es auf einem Netzlaufwerk ist, t Der Adapter ist wahrscheinlich Timeout, wenn es den Datensatz füllt, insbesondere wenn Sie eine große Menge von Daten in der Tabelle haben.

Wenn dies der Grund für Ihr Problem ist, können Sie möglicherweise die Anwendung neu schreiben, um nur die erforderlichen Datensätze abzurufen, wenn sie benötigt werden.

In meiner Firma haben wir einen Computer in unserem Büro für Remote-Benutzer, um unsere Access-Anwendung zu verwenden. Sie melden sich mit Remote-Desktop auf diesem Computer an. Da sich die Maschine in unserem LAN befindet, ist die Leistung dieselbe wie für lokale Benutzer.

Wenn Sie Ihrer Frage weitere Details hinzufügen können, können wir Ihnen möglicherweise weitere nützliche Ratschläge geben.