为什么DataDirectory不会在运行时更改

时间:2014-09-21 21:45:46

标签: c# winforms connection-string local-database

我想用w winform c#application连接到本地数据库 当我将连接字符串设置为数据时:Source=C:\Users\PACKARD BELL\documents\visual studio 2010\Projects\GestionStock\MyApp\Mydb.sdf
它工作正常,但是当我将它设置为Data Source=|DataDirectory|\Mydb.sdf时,它才能正常工作 我试图在控制台中打印带有数据目录变量的连接字符串,我发现它没有改变

我希望连接字符串随应用程序文件夹的位置而改变

我该怎么做? 提前谢谢

3 个答案:

答案 0 :(得分:0)

但是文件夹App_Data

中的sdf文件

答案 1 :(得分:0)

以下是article我写过的废话:

// What's the name of the file you want to work with
var file_name = "parse_me.txt";

// Let's assume you're working with the file on your desktop
var path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

// This is needed to "paste" the dir and the file name (it'll add the "\" basically).
var file_location = Path.Combine(path,file_name);

// Now you can do:
string[] read_all_lines = System.IO.File.ReadAllLines(file_location);

假设你有文件,它应该可以工作。

答案 2 :(得分:0)

根据MSDN

  

|DataDirectory|:这是通过AppDomain.SetData("DataDirectory", objValue)方法设置的值。 ASP.NET应用程序解析| DataDirectory |到“/ app_data”文件夹。

基本上,如果使用|DataDirectory|值,则数据库必须存在于项目的App_Data\目录中。您可以更改默认值,但实际上这只会使可能期望默认行为的其他开发人员感到困惑。

所以,而不是

Source=C:\Users\PACKARD BELL\documents\visual studio 2010/Projects\GestionStock\MyApp\Mydb.sdf

它将是

Source=C:\Users\PACKARD BELL\documents\visual studio 2010\Projects\GestionStock\MyApp\App_Data\Mydb.sdf