【发布时间】:2014-07-14 16:33:41
【问题描述】:
我是 C# 编程的新手,我正在 VS2012 中开发一个 Windows 窗体应用程序,我需要从 SQL 数据库中检索数据,并将图像加载到图片框中。 通过使用绝对路径描述(如“D:\ProjectFolder\DbaseFolder\Dbase.sdf”)或使用数据目录的相对路径,我已成功连接到数据库,如下所示:
myConnection.ConnectionString =
"Data Source=|DataDirectory|\\Dbase.sdf";
这行得通。但是,我想将我的数据库放在数据目录的子文件夹中,但我不知道如何制作我的连接字符串。我的想法是:
myConnection.ConnectionString =
"Data Source=|DataDirectory|\\DbaseFolder\\DbFilm.sdf";
但这不起作用。同样的问题也适用于将图像放入图片框中。如何创建数据目录子文件夹的相对路径?
【问题讨论】:
-
您通常不想在连接字符串上指向 sdf 文件。此外,它应该在您的 app.config 或 web.config 中用于 Web 应用程序。如果您在本地 sql 服务器上工作,您的连接字符串应如下所示:
Server=.;Database=myDataBase;Trusted_Connection=True;您可以在以下位置查找更多连接字符串:connectionstrings.com/sql-server-2012 -
谢谢安德烈。我已尝试使用来自 connectionstrings.com 的信息,但请您再给我一个正确方向的提示吗?我想在应用程序文件夹内的子文件夹 (\Dbase) 中使用本地数据库 (DbFilm.sdf)。我的连接字符串应该是什么样的?
-
如果你真的想使用本地数据库,你可以用这个:
"Server=(LocalDB)\v11.0;Integrated Security=true;AttachDbFileName=C:\Users\John\Documents\Visual Studio2013\Projects\ADONET2ConnectedExpress\Database1.mdf"。如果你在你的 c# 代码而不是 app.config 上设置它,那么你需要用另一个反斜杠来转义反斜杠 -
感谢您的快速回复,安德烈。但是,我看到您使用的是绝对路径 (C:\Users\...)。我想使用相对路径(类似于 |DataDirectory|\\Subfolder\...),以便最终用户可以将应用程序安装在他喜欢的任何文件夹中,并且应用程序仍会在应用程序文件夹。
-
我注意到您有 Dbase.sdf 和 DbFilm.sdf(不同的数据库名称)。也许你把它们混在一起了,这就是你找不到数据库的原因?
标签: c# datadirectory