从WPF连接数据库



我在WPF应用程序中有一个文件夹'Data',其中有一个。sdf数据库文件。这个文件是我的应用程序的数据库。

在开发我的应用程序时,我使用了一个固定的路径到我的数据库,像这样:

'Data Source=P:DropboxProjectsMembersAppMembersAppbinDebugDataRF_db.sdf'

现在我想使用|DataDirectory|值,以便应用程序始终可以找到db,无论应用程序是安装。我在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";

但这不起作用。

你知道这是怎么回事吗?

不要在代码中更改DataDirectory;它是由安装程序设置的,更改它将阻止你的应用程序知道数据安装在哪里。只使用:

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

没有别的了。不要调用AppDomain.CurrentDomain.SetData("DataDirectory", path);

您可以使用:

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));

看起来您正在创建一个ADO。网络连接字符串。难道你的dataSourceHome中没有信息吗?看看这篇文章。

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

最新更新