【问题标题】:Access to the database file is not allowed不允许访问数据库文件
【发布时间】:2012-05-28 19:21:28
【问题描述】:

我有一个 WinXP 应用程序(在 WinXP 中完美运行),我想在 Win7 上安装它。安装很好,但是当我双击应用程序加载它时,我收到一条消息:

Access to the database file is not allowed [file path goes here].

目前,我将连接设置为:

SqlCeConnection("Data Source=|DataDirectory|/db.sdf")

我也试过了:

SqlCeConnection("Data Source=*|DataDirectory|*db.sdf")

SqlCeConnection("Data Source=*|DataDirectory|*/db.sdf")

我收到了不同的错误消息:

The file name is not valid

为什么会发生这种情况,我该如何阻止这种情况发生?

【问题讨论】:

    标签: visual-studio-2008 windows-7 .net-3.5 windows-xp


    【解决方案1】:

    默认情况下,|DataDirectory|变量将扩展如下:

    • 对于放置在用户计算机目录中的应用程序,这将 成为应用的 (.exe) 文件夹。
    • 对于在 ClickOnce 下运行的应用程序,这将是一个特殊的数据文件夹 由 ClickOnce 创建
    • 对于 Web 应用程序,这将是 App_Data 文件夹

    在 Windows7 中无法写入目录 C:\program files (x86)\yourexefolder。 如果您将数据库安装在应用程序的子文件夹或同一文件夹中,则会出现此错误。

    您应该将数据库安装到 %APPDATA% 目录

    例如在 C# 中,您可以通过这种方式设置 DataDirectory 路径

    string myDataDir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\yourAppDataFolder";
    
    // Set |DataDirectory| value 
    AppDomain.CurrentDomain.SetData("DataDirectory",myDataDir);  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 2012-08-09
      • 2017-03-02
      • 2018-03-31
      相关资源
      最近更新 更多