2009-08-14 4 views
0

J'ai une base de données MS Access avec des chemins d'accès complets aux fichiers dans une table. Nous déplaçons tous les fichiers vers un emplacement différent. J'ai besoin de mettre à jour la base de données. J'utilise C# pour le faire. Lorsque je recherche le chemin du fichier stocké dans l'accès, il recherche 'K: \ PDFFiles \ myPDF.pdf' au lieu de 'K: \ PDFFiles \ myPDF.pdf' et ne trouve pas de correspondance. Donc, ma question est comment puis-je interroger la base de données d'accès pour le nom de fichier correct au lieu du nom de fichier échappé?Critères de chemin de fichier de requête de base de données MS Access dans C#

Merci

+0

Pourrait la fi l'extension soit mdf au lieu de pdf? – TGnat

+0

'K: \ PDFFiles \ myPDF.pdf' au lieu de 'K: \ PDFFiles \ myPDF.pdf' <--- Ils me ressemblent. Précisez s'il vous plaît. – HansUp

+0

Ces chemins d'accès sont-ils stockés dans un champ de texte normal ou dans un champ de lien OLE? Si le premier, exécutez simplement une requête UPDATE pour analyser l'original et le convertir en le nouveau. Dans ce dernier cas, vous avez un problème beaucoup plus important et vous voudrez peut-être essayer SUBST pour truquer l'ancienne lettre de lecteur et JUNCTION pour créer des dossiers virtuels qui ressemblent un peu aux liens symboliques UNIX. Cela fera ressembler le nouvel emplacement à l'ancien. –

Répondre

0

Vous pouvez essayer:

@"K:\PDFFiles\myPDF.pdf" 

ou

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

Est-ce que votre instruction select citer le chemin, quelque chose comme ceci (notez les guillemets simples autour du paramètre):

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

J'ai essayé ceux-ci ce qui se met dans le paramètre que j'envoie à la requête est "K: \\ PDFFiles \\ monPDF.pdf" et il ne trouve pas de correspondance. – Scott

+0

hmm, peut-être que ma modification aide ... –

Questions connexes