【问题标题】:Set the database location in the connection string thought AppDomain.CurrentDomain.SetDataAppDomain.CurrentDomain.SetData 在连接字符串中设置数据库位置
【发布时间】:2013-09-17 18:10:29
【问题描述】:

我已经了解了如何使用连接字符串中的|DataDirectory| 来设置我的 wpf 应用程序的数据库文件所在的目录,但我希望更进一步。

如 msdn SqlConnection.ConnectionString Property 中所述,

通过使用 DataDirectory 替换字符串,路径可以是绝对的或相对的。如果使用 DataDirectory,则数据库文件必须存在于替换字符串指向的目录的子目录中。

现在,我想使用由应用程序控制的自定义 DatabaseLocation 属性设置完整位置,而不仅仅是 DataDirectory,因此我不需要处理连接字符串。

换句话说,我的连接字符串将来自这个:

connectionString="Data Source='|DataDirectory|\database.sdf'" providerName="System.Data.SqlServerCE.4.0"

进入这个:

connectionString="Data Source='|DatabaseLocation|" providerName="System.Data.SqlServerCE.4.0"

在代码中,我将读取用户配置并将方便的数据设置到适当的位置:

AppDomain.CurrentDomain.SetData("DatabaseLocation", someVarWithDatabaseLocation);

这样我就不需要someVarWithDatabaseLocation 的内容,从用户界面到业务再到数据访问并创建连接字符串。

这可能吗,还是只有|DataDirectory| 魔术标签被连接字符串构建器处理?

谢谢

【问题讨论】:

    标签: c# wpf connection-string


    【解决方案1】:

    嗯。没有。 在反编译 System.Data(对不起)并分析可用的 ConnectionString 构造函数后,我看到只有 ExpandDataDirectory 并且它已硬编码到

    const string DataDirectory = "|datadirectory|";
    

    所以...只处理数据目录...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多