我的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";
但这不起作用。
知道这里有什么问题吗?
答案 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上找到创建连接的其他方法。