2

我的 WPF 应用程序中有一个文件夹“数据”,其中有一个 .sdf 数据库文件。该文件是我的应用程序的数据库。

在开发我的应用程序时,我使用了指向我的数据库的固定路径,如下所示:

'Data Source=P:\Dropbox\Projects\MembersApp\MembersApp\bin\Debug\Data\RF_db.sdf'

现在我想使用 |DataDirectory| 值,以便应用程序在安装应用程序时始终可以找到数据库。我在 StackOverflow 上找到了这个解决方案:

string executable = System.Reflection.Assembly.GetExecutingAssembly().Location;
string path = (System.IO.Path.GetDirectoryName(executable));
AppDomain.CurrentDomain.SetData("DataDirectory", path);
string dataSourceHome = "Data Source=|DataDirectory|\RF_db.sdf";

但是在最后一行“错误的编译常量值”上给了我一个错误。我试过:

string dataSourceHome = @"Data Source=|DataDirectory|\RF_db.sdf";

但这不起作用。

知道这里有什么问题吗?

4

3 回答 3

1

你可以使用:

string dataSourceHome = string.Format("Data Source={0}\\RF_db.sdf", Environment.CurrentDirectory);

或者

 string dataSourceHome = string.Format("Data Source={0}\\RF_db.sdf", System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
于 2012-12-29T21:32:17.567 回答
1

不要更改DataDirectory您的代码;它由安装程序设置,更改它会阻止您的应用程序知道数据的安装位置。只需使用:

string dataSourceHome = @"Data Source=|DataDirectory|\RF_db.sdf";

没有别的了。不要打电话AppDomain.CurrentDomain.SetData("DataDirectory", path);这就是破坏事物的原因。

于 2012-12-30T02:49:54.537 回答
0

看起来您正在创建一个 ADO.Net 连接字符串。你的信息不只是缺少dataSourceHome吗?看看这个帖子

或者,可以在ConnectionStrings.com上找到创建连接的不同方法。

于 2012-12-29T21:14:09.773 回答