在连接字符串中设置数据库位置 思想 AppDomain.CurrentDomain.SetData

本文关键字:思想 AppDomain CurrentDomain SetData 位置 数据库 连接 字符串 设置 | 更新日期: 2023-09-27 18:31:35

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

如 msdn SqlConnection.ConnectionString 属性中所述,

通过使用 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|魔术标记?

谢谢

在连接字符串中设置数据库位置 思想 AppDomain.CurrentDomain.SetData

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

const string DataDirectory = "|datadirectory|";

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