C# 2 версии того же файла MDF
У меня есть файл MDF, который я использую в качестве БД и подключаясь к нему с помощью Linq-to-SQL.
моя строка подключения:
<add name="TasteTeam.Properties.Settings.TasteDBConnectionString" connectionString="Data Source=(LocalDB)\v11.0; AttachDbFilename=|DataDirectory|\TasteDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
Моя проблема заключается в том, что когда я запускаю программу и добавляю данные в таблицу, она добавляется в файл MDF, который находится в папке bin вместо основного файла MDF.
эта ситуация приводит к тому, что файл MDF становится пустым каждый раз, когда я перезапускаю myprogram вместо сохранения данных.
Что я могу сделать, чтобы и MDF, и MDF-файл tmp в корзине были одним и тем же файлом (я уже перепробовал все опции "copy to output directory", но ничего не помогло)
1 ответ
Весь подход AttachDbFileName= имеет недостатки - в лучшем случае! При запуске приложения в Visual Studio оно будет копироваться по всему .mdf
файл (из вашего App_Data
каталог в выходной каталог - обычно .\bin\debug
- где работает ваше приложение) и, скорее всего, ваше INSERT
работает просто отлично - но в итоге вы смотрите не тот файл.mdf!
Если вы хотите придерживаться этого подхода, попробуйте установить точку останова на myConnection.Close()
позвоните - а затем осмотрите .mdf
файл с SQL Server Mgmt Studio Express - я почти уверен, что ваши данные там.
На мой взгляд, реальным решением было бы
установить SQL Server Express (и вы уже сделали это в любом случае)
установить SQL Server Management Studio Express
создайте свою базу данных в SSMS Express, дайте ей логическое имя (например,
TasteDB
)подключитесь к нему, используя его логическое имя базы данных (заданное при его создании на сервере), и не связывайтесь с физическими файлами базы данных и пользовательскими экземплярами. В этом случае ваша строка подключения будет выглядеть примерно так:
Data Source=.\\SQLEXPRESS;Database=TasteDB;Integrated Security=True
а все остальное точно так же, как и раньше...
Также см. Отличный пост в блоге Аарона Бертранда. Плохие привычки: использовать AttachDbFileName для получения дополнительной информации.