2013-04-02 181 views
0

想要连接到App_Data文件夹中的.mdb文件。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您需要更改ProviderMicrosoft.JET.OLEDB.4.0

我希望这个答案能帮助别人。