Работа над проектом приложения формы окна с 2 разработчиками. Обмен исходными кодами через tfs заменил путь каталога данных на ключевое слово |DataDirectory|
, так как каталоги данных различны на каждом ПК. (C:\Users\username\Documents\Visual Studio 20XX\Projects\solution folder\solution folder
)C# Visual Studio: | DataDirectory | ключевое слово в строке соединения конфликты файлы mdf
использовали этот относительный путь в строке соединения как
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
, расположенный в корневой папке с .mdf
, расположенной в bin\debug
. SELECT
запросы работают нормально при использовании |DataDirectory|
. Запрос INSERT не работает при использовании |DataDirectory|
, но отлично работает при использовании фактического пути к каталогу вместо |DataDirectory|
.
Как решить эту проблему? Требования:
не нужно изменять пути каталогов каждый раз после того, как получить последнюю версию с TFS, нужно что-то вроде
|DataDirectory|
всегда оставаться.Строка подключения не должна иметь конфликта с файлами
.mdf
в корневой папке и папкеbin\debug
.