2013-04-02 3 views
0

Хотите подключиться к файлу .mdb в папке App_Data.oledb не может подключиться

Строка соединения:

"Provider=Microsoft.JET.OLEDB.4.0;data source=|App_Data|\\abcd.mdb" 

Получить сообщение об ошибке:

Not a valid file name. 

Когда адаптер пытается заполнить набор данных.

Пробовал затухание, обратную косую черту, короткую линию, вы называете это. Ничто не работает.

Пожалуйста, помогите, спасибо.

+1

Ну, я боюсь, что «Jackery Xu» вам нужно будет показать больше кода, чем это. Также ваша строка подключения выглядит немного – MethodMan

+0

http://www.connectionstrings.com/access, а что только одна обратная косая черта? – adt

ответ

0

Думаю, вы должны использовать |DataDirectory|, а не |App_Data|. И после него обратная косая черта.

1

Я знаю, что это слишком поздно, но я была такая же проблема, как вы допрошен здесь, и это то, что работает для меня:

string con = String.Format(
     "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Persist Security Info=True;", 
     String.Format(
       @"{0}\{1}", 
       Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), 
       "abcd.accdb" 
     ) 
); 

@ позволяет использовать символы, такие как \ без backslashing них. Я всегда использую @ при вводе пути к файлу. Хотя я могу представить, что жесткие кодировки файловых путей в вашем коде, вероятно, не лучший способ сделать это, попробуйте это вместо (What is app.config for?).

Линия Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) разрешает значение переменной окружения %APPDATA%.

Также обратите внимание, что это решение для accdb файлов и если вы хотите использовать это для mdb вам нужно изменить Provider к Microsoft.JET.OLEDB.4.0.

Надеюсь, этот ответ поможет кому-то.

Смежные вопросы