Данные не сохраняются в локальной базе данных при повторном запуске c # - PullRequest
0 голосов
/ 16 сентября 2018

Я создал базовое приложение Windows Form, используя опцию База данных на основе служб , чтобы при развертывании его на другом компьютере не потребовалось устанавливать сервер SQL там. Here is the image of my app

Я добавил класс LINQ-to-SQL в проект, и здесь - мой полный код

А вот и файл app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
  <connectionStrings>
    <add name="_16Sep18_databaseAppWithSetup_.Properties.Settings.WrestlersConnectionString"
      connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Wrestlers.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

Проблема в том, что каждый раз, когда я запускаю свою программу, ранее сохраненные данные больше не находятся в базе данных, но когда я вводю данные и выполняю операции вставки, удаления, обновления и т. Д., Это работает, и данные также отображаются в сетке данных, но как только я закрою приложение, все эти данные исчезнут. Почему это происходит и как мне это исправить?

Ответы [ 3 ]

0 голосов
/ 03 марта 2019

Эта проблема возникает из-за того, что файл mdf сохраняется в папке DEBUG также при попытке запустить программу ... Просто перейдите в файл app.config, похоже, что вы добавили каталог, например

Source =. \ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ Data \ Database1.mdf; Интегрированная безопасность = True; Пользовательский экземпляр = True

изменить | DataDirectory |к полному адресу каталога данных, например

"AttachDbFileName = c: \ Project \ Data \ Database1.mdf"

это будет работать

0 голосов
/ 01 августа 2019

Я решил эту проблему, изменив «копировать всегда» => «копировать, если новее»:

enter image description here

Это сработало для меня.Надеюсь, это поможет вам.

0 голосов
/ 16 сентября 2018

Файл MDF копируется в папку отладки при каждом запуске, и это файл, которым манипулирует ваш код, а не файл в исходной папке.

...