【问题标题】:oledb can't connectoledb连接不上
【发布时间】:2013-03-24 05:56:16
【问题描述】:

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

连接字符串:

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

接收错误:

Not a valid file name.

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

尝试过前斜杠、反斜杠、波浪线,应有尽有。似乎没有任何效果。

请帮忙,谢谢。

【问题讨论】:

  • 好吧,我担心Jackery Xu 你需要显示更多的代码......而且你的连接字符串看起来有点不对
  • connectionstrings.com/access 一个反斜杠怎么样?

标签: c# ms-access oledb


【解决方案1】:

我认为你应该使用|DataDirectory|,而不是|App_Data|。后面还有一个反斜杠。

【讨论】:

    【解决方案2】:

    我知道这有点太晚了,但我遇到了与您在这里提出的问题相同的问题,这对我有用:

    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

    我希望这个答案对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多