0

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

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

我怎样才能做到这一点?提前致谢

4

3 回答 3

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

于 2014-09-21T22:04:53.457 回答
0

但是文件夹 App_Data 中的 sdf 文件

于 2014-09-21T21:55:05.360 回答
0

这是我写的一篇文章的片段:

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

假设您在那里有文件,它应该可以工作。

于 2014-09-21T21:56:21.740 回答