Sql server 从项目文件夹获取database.mdf的直接路径-文件已移动
我正在尝试获取本地数据库的直接路径 我将数据库放在我的主项目文件夹中: 然后我使用以下代码获取路径:Sql server 从项目文件夹获取database.mdf的直接路径-文件已移动,sql-server,vb.net,Sql Server,Vb.net,我正在尝试获取本地数据库的直接路径 我将数据库放在我的主项目文件夹中: 然后我使用以下代码获取路径: Dim cn As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" + My.Application.Info.DirectoryPath + "\database\database.mdf;Integrated Security=True;User Instance=True") 现在一切都好了 那么,为什么要将
Dim cn As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" + My.Application.Info.DirectoryPath + "\database\database.mdf;Integrated Security=True;User Instance=True")
现在一切都好了
那么,为什么要将数据库复制到\bin\Debug
文件夹中呢
然后,如果我打开源代码并运行项目,并尝试在\bin\Debug
中保存数据或从应用程序中查找以前保存的数据,我是否找不到它?为什么?
我的意思是
\bin\Debug
运行项目,它将保存下面是它的工作原理。将数据文件添加到项目中,该文件是源文件。您可以在该文件中构建模式,还可以向该文件添加任何默认数据。但是,您不使用该文件进行测试和调试。使用测试数据污染该文件,然后在发布应用程序时没有干净的数据库可与应用程序一起部署,这有什么意义 生成时,该源文件将复制到输出文件夹。如果生成调试版本,数据文件将被复制到调试文件夹中,这就是您将其与测试数据弄乱的地方。当您的应用程序准备好部署时,您将切换到发布版本,并在发布文件夹中创建源数据库的干净拷贝 默认情况下,该源文件的
复制到输出目录
属性设置为始终复制
。这意味着,每当您运行项目并且对任何源文件进行更改时,新的副本将覆盖调试文件夹中已有的副本,并且您上次调试时所做的任何更改都将丢失。如果将该属性更改为Copy If Newer
,则仅当更改源数据文件时,才会创建新副本。这允许您在调试运行之间保留更改。要强制刷新,只需执行清理或手动删除副本