【发布时间】:2016-08-26 17:44:30
【问题描述】:
与 2 名开发人员一起开发一个 Windows 窗体应用程序项目。通过 tfs 共享源代码,由于每台 PC 的数据目录不同,所以将数据目录路径替换为 |DataDirectory| 关键字。 (C:\Users\username\Documents\Visual Studio 20XX\Projects\solution folder\solution folder)
在连接字符串中使用了这个相对路径
class ConnectionManager
{
public static SqlConnection dbcon()
{
string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\systemdb.mdf;Integrated Security=True";
SqlConnection con = new SqlConnection(connectionString);
con.Open();
return con;
}
}
问题是当C#应用程序向SQL Server数据库发送数据时,它显示数据已经添加到数据库中,但实际上数据库并没有更新。
发现连接字符串与位于根文件夹中的.mdf 文件与位于bin\debug 中的.mdf 冲突。 SELECT 查询在使用 |DataDirectory| 时工作正常。 INSERT 查询在使用|DataDirectory| 时不起作用,但在使用实际目录路径而不是|DataDirectory| 时工作正常。
如何解决这个问题?要求是:
应该不需要每次从 tfs 获取最新版本后都修改目录路径,需要像
|DataDirectory|这样的东西一直保持。连接字符串不应与根文件夹中的
.mdf文件和bin\debug文件夹中的文件冲突。
【问题讨论】:
标签: c# sql-server visual-studio tfs datadirectory