2010-11-05 68 views
0

我不知道在哪里放置数据库,以便当我将我的最终应用程序.exe,在它的文件夹中,我将有另一个数据文件夹,并在该文件夹中db.mdf。这里是我的连接字符串:根数据库位置

con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\alex\\Documents\\Visual Studio 2010\\Projects\\Network_Remote_Monitoring\\Network_Remote_Monitoring\\data\\bd.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True";

( “\ DATA \ bd.mdf”,即我想相对REFFERENCE的分贝,像AttachDbFilename =)

回答

1

相对路径data\\bd.mdf不能在连接中使用吗?例如,

con.ConnectionString = "DataSource=.\\SQLEXPRESS;AttachDbFilename='data\\bd.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True"; 

否则,你可以使用当前目录的快捷方式例如,像

string dbdirectory = System.IO.Directory.GetCurrentDirectory() + "\\data\\bd.mdf" 
con.ConnectionString = "DataSource=.\\SQLEXPRESS;AttachDbFilename='" 
+ dbdirectory + "';Integrated Security=True;Connect Timeout=30;User Instance=True"; 

或者你甚至可以打开文件对话框,询问用户他们想要保存的节目数据,并从那里抓住完整的路径。

编辑:这是你将如何实现你想要的,我会建议但存储数据库的其他地方一样@TomTom提出什么

2

,当我将有我的最终应用 .exe文件,在它的文件夹,我将不得不 另一个数据文件夹,该文件夹 的db.mdf在

不这样做。数据库应该永远活:

  • 在程序文件夹
  • 在网络驱动器(以\开始)。

为什么要这样附着呢?在大多数情况下(我所有工作过的)数据库都是在服务器上显式创建的。本地数据库应该存在于用户程序数据(NOT DOCUMENTS!)文件夹或共享文件夹中。

检查http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx获取特殊文件夹的列表。

如果您确实需要将数据库保持在本地,则您需要ApplicationDataa,LocalApplicationData(未复制)或CommonApplicationData。

+0

“......如果你真的要保持数据库的本地”(以此为一般建议),或者,如果你真的想,例如,如果你使用的是在线数据库解决方案,比如SQLite。我知道问题不在于此,但可能有这样的理由,在稍微不同的数据库方案中 – 2010-11-05 06:48:55

+0

但是,然后,您知道,这不是以流程数据库开头。 – TomTom 2010-11-05 07:40:36