将连接字符串更改为相对路径后无法导入此数据库错误
This database cannnot be imported error after changing connection string to relative path
我在 Visual Studio 2017 工作,window 表单 (c#),我已经将数据库添加到我的项目中,(新项目 -> 基于新服务的数据库)并且我使用了这个连接字符串:
然后我 运行 这个查询,它工作正常:
using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Podlaktica40cm\Desktop\WindowsFormsApp1\WindowsFormsApp1\Database1.mdf;Integrated Security=True"))
{
con.Open();
using (SqlCommand com = new SqlCommand("insert into Test values(45)", con))
{
com.ExecuteNonQuery();
}
}
问题是:当我将连接字符串的路径更改为相对路径而非绝对路径时,如下所示:
@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = |DataDirectory|\Database1.mdf; Integrated Security = True")
现在,当我在 Visual Studio 资源管理器中打开数据库并尝试刷新它时,会发生这种情况:
所以我的数据库中没有插入任何行。我还尝试将 copy 更改为输出目录 属性 以复制更新,但结果仍然相同。
注意:我完成了我的项目并且我正在使用绝对路径,我完成了所有测试,现在我必须更改为相对路径以便它可以在其他计算机上工作,因此我制作了这个演示测试应用程序来向您展示错误是什么并进行简化(ConfigurationManager、参数化 SQL 等等)。在我将 |DataDirectory|
放入我的 conString
之后,当我关闭我的应用程序时,我在运行时插入的所有数据都被删除,并且我正在打开带有空数据库的应用程序。我假设项目目录中的 .mdf
文件和调试文件夹中的 mdf 之间存在一些混淆。我真的很困惑所以任何帮助或任何 link 都会很棒!
出现问题是因为我在 bin/debug 文件夹的 mdf 文件中访问和插入数据,而我是通过服务器资源管理器在项目的源文件夹中打开数据库。所以我在调试中添加了另一个与 mdf 文件的连接,所有更改都在那里可见!
我在 Visual Studio 2017 工作,window 表单 (c#),我已经将数据库添加到我的项目中,(新项目 -> 基于新服务的数据库)并且我使用了这个连接字符串:
然后我 运行 这个查询,它工作正常:
using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Podlaktica40cm\Desktop\WindowsFormsApp1\WindowsFormsApp1\Database1.mdf;Integrated Security=True"))
{
con.Open();
using (SqlCommand com = new SqlCommand("insert into Test values(45)", con))
{
com.ExecuteNonQuery();
}
}
问题是:当我将连接字符串的路径更改为相对路径而非绝对路径时,如下所示:
@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = |DataDirectory|\Database1.mdf; Integrated Security = True")
现在,当我在 Visual Studio 资源管理器中打开数据库并尝试刷新它时,会发生这种情况:
所以我的数据库中没有插入任何行。我还尝试将 copy 更改为输出目录 属性 以复制更新,但结果仍然相同。
注意:我完成了我的项目并且我正在使用绝对路径,我完成了所有测试,现在我必须更改为相对路径以便它可以在其他计算机上工作,因此我制作了这个演示测试应用程序来向您展示错误是什么并进行简化(ConfigurationManager、参数化 SQL 等等)。在我将 |DataDirectory|
放入我的 conString
之后,当我关闭我的应用程序时,我在运行时插入的所有数据都被删除,并且我正在打开带有空数据库的应用程序。我假设项目目录中的 .mdf
文件和调试文件夹中的 mdf 之间存在一些混淆。我真的很困惑所以任何帮助或任何 link 都会很棒!
出现问题是因为我在 bin/debug 文件夹的 mdf 文件中访问和插入数据,而我是通过服务器资源管理器在项目的源文件夹中打开数据库。所以我在调试中添加了另一个与 mdf 文件的连接,所有更改都在那里可见!