2009-08-14 10 views
0

Ich habe eine MS Access-Datenbank, die vollständige Pfade zu Dateien in einer Tabelle hat. Wir verschieben die gesamte Datei an einen anderen Speicherort. Ich muss die Datenbank aktualisieren. Ich verwende C#, um dies zu tun. Wenn ich nach dem Dateipfad suche, der im Zugriff gespeichert ist, sucht er nach "K: \ PDFFiles \ myPDF.pdf" anstelle von "K: \ PDFFiles \ myPDF.pdf" und findet keine Übereinstimmung. Also, meine Frage ist, wie frage ich die Access-Datenbank für den richtigen Dateinamen anstelle des maskierten Dateinamens?MS Access-Datenbank-Abfrage Dateipfad Kriterien in C#

Dank

+0

Könnte der fi Die Erweiterung ist MDF statt PDF? – TGnat

+0

'K: \ PDFFiles \ myPDF.pdf' anstelle von 'K: \ PDFFiles \ myPDF.pdf' <--- Sie sehen für mich gleich aus. Bitte klären Sie. – HansUp

+0

Sind diese Pfade in einem normalen Textfeld oder in einem OLE-Link-Feld gespeichert? Wenn der erste, führen Sie einfach eine UPDATE-Abfrage, um das Original zu analysieren und in das neue zu konvertieren. Im letzteren Fall haben Sie ein viel größeres Problem und möchten vielleicht SUBST versuchen, den alten Laufwerksbuchstaben und JUNCTION zu fälschen, um virtuelle Ordner zu erstellen, die den symbolischen Links von UNIX ähneln. Dadurch wird der neue Standort wie der alte aussehen. –

Antwort

0

Sie können versuchen:

@"K:\PDFFiles\myPDF.pdf" 

oder

"K:\\PDFFiles\\myPDF.pdf" 

Hat Ihr select-Anweisung Zitat der Weg, so etwas wie dieses (man beachte die einfachen Anführungszeichen um den Parameter):

string sql = string.Format("select * from MyTable where MyPathField = '{0}'", "K:\\PDFFiles\\myPDF.pdf"); 
+0

Ich habe versucht, diese, was in den Parameter, den ich an die Abfrage senden, gesetzt wird, ist "K: \\ PDFFiles \\ myPDF.pdf" und es findet keine Übereinstimmung. – Scott

+0

hmm, vielleicht hilft mein Edit ... –