在连接字符串中设置数据库位置,认为是AppDomain.CurrentDomain.SetData

时间:2013-09-17 18:10:29

标签: c# wpf connection-string

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

如msdn SqlConnection.ConnectionString Property中所述,

  

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

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

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

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内容到dataaccess并创建连接字符串。

这是可能的,还是连接字符串构建器只处理|DataDirectory|魔术标记?

谢谢

1 个答案:

答案 0 :(得分:0)

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

const string DataDirectory = "|datadirectory|";

所以...只处理datadirectoy ......