oledb无法连接

时间:2013-04-02 19:23:33

标签: c# ms-access oledb

想要连接到App_Data文件夹中的.mdb文件。

连接字符串:

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

收到错误:

Not a valid file name.

当适配器尝试填充数据集时。

尝试过反斜杠,反斜杠,波浪线,你说出来。似乎没什么用。

请帮助,谢谢。

2 个答案:

答案 0 :(得分: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"
         )
);

使用@可以使用\之类的字符而无需反斜杠。输入文件路径时,我总是使用@。虽然我可以想象代码中的硬编码文件路径可能不是最好的方法,但请尝试这样做(What is app.config for?)。

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)解析为环境变量%APPDATA%的值。

另请注意,此解决方案适用于accdb个文件,如果您要将其用于mdb,则需要将Provider更改为Microsoft.JET.OLEDB.4.0

我希望这个答案有助于某人。

答案 1 :(得分:0)

我认为您应该使用|DataDirectory|,而不是|App_Data|。它之后只有一个反斜杠。