【问题标题】:winforms DataDirectory locationwinforms 数据目录位置
【发布时间】:2013-05-17 21:45:35
【问题描述】:

我有一个使用 SQL compact 的 c# winforms 应用程序,这里是 DB 的连接字符串:

<add name="Test.Properties.Settings.TestManagerConnectionString"
            connectionString="Data Source=|DataDirectory|\Database\TestManager.sdf"
            providerName="Microsoft.SqlServerCe.Client.3.5" />

如何获取连接字符串指向的路径?即:C:\Users\name\AppData...等

【问题讨论】:

  • 谢谢,但我仍然面临的问题是AppDomain.CurrentDomain.GetData("DataDirectory") 总是返回null
  • 我怎样才能改变|DataDirectory|在上面的 connstring 中改成 connectionString="Data Source=\Database\TestManager.sdf" 这样当应用程序启动时它不会在 |DataDirectory| 中寻找数据库

标签: c# winforms sql-server-ce datadirectory


【解决方案1】:

为什么要将它移动到不同的目录?默认情况下,非管理用户无权在 Program Files 目录树中进行更改。 AppData 是用户特定的存储(在网络托管配置文件的情况下)指向网络上用于用户应用数据目录的适当目录。

如果您想为多个用户共享数据,可以使用 All_Users 数据目录。我不确定如何使用 SqlCE 连接字符串来指定它。

更新

Here is the answer确定appdata目录。

要设置 DataDirectory 属性,请调用 AppDomain.SetData 方法。 如果不设置 DataDirectory 属性,默认如下 将应用规则来访问数据库文件夹:

  1. 对于放在用户计算机文件夹中的应用程序, 数据库文件夹使用应用程序文件夹。
  2. 对于在 ClickOnce 下运行的应用程序,数据库文件夹使用 创建的特定数据文件夹。

【讨论】:

  • 我不想移动它,我实际上需要它的完整路径。 C:\Users\...等
  • 啊我现在明白了。我以为您的问题最初是在问如何将目录更改为程序文件下。
猜你喜欢
  • 2011-11-19
  • 2018-02-20
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多