来自WPF的数据库连接

时间:2012-12-29 20:54:03

标签: c# wpf database

我的WPF应用程序中有一个文件夹'Data',其中有一个.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";

但是在最后一行'Bad compile constant value'上给我一个错误。我试过了:

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

但这不起作用。

知道这里有什么问题吗?

3 个答案:

答案 0 :(得分: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));

答案 1 :(得分:1)

请勿在代码中更改DataDirectory;它由安装程序设置,更改它将阻止您的应用程序知道数据的安装位置。只需使用:

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

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

答案 2 :(得分:0)

看起来您正在创建ADO.Net连接字符串。您的dataSourceHome是否缺少信息? 看看this post

或者可以在ConnectionStrings.com上找到创建连接的其他方法。