Uwakpeter Ответов: 1

Запись базы данных Sqlite удалена после остановки приложения


Всем Привет,

В моем приложении C# windows, использующем базу данных sqlite, я наблюдал, что каждый раз, когда я запускаю приложение и вставляю новые записи в базу данных, записи будут сохранены до тех пор, пока приложение все еще работает, но когда я остановил приложение, записи будут стерты(удалены) из базы данных при использовании этой строки подключения:

<add name="PITADatabaseConnectionString" connectionString="Data Source=|DataDirectory|\App_Data\PITApplication.SQLite3Db; Version=3;" providerName="System.Data.Sqlite" />


Когда я изменяю строку подключения на:

<add name="PITADatabaseConnectionString" connectionString="Data Source=C:\SqLite\Gui\SQLiteStudio\PITApplication.SQLite3Db; Version=3;"

      providerName="System.Data.Sqlite" />


и сохраняйте новые записи, они будут сохранены навсегда и не будут удалены. Я не знаю, в чем проблема, я добавил базу данных в папку в моем приложении через контекстное меню add new items, после добавления базы данных в мое приложение я установил свойство Build Action в Content, а свойство Copy to output directory-в Copy always.

я буду признателен за вашу любезную помощь.

Что я уже пробовал:

я использовал эту строку подключения:

< add name= "PITADatabaseConnectionString" connectionString= " источник данных=|DataDirectory|\App_Data\PITApplication.SQLite3Db; версия=3;" имя_поставщика="системы.Данных.Базы данных SQLite" /&ГТ;

Herman&lt;T&gt;.Instance

Используете ли вы транзакции?

Uwakpeter

да, я использую транзакцию для сохранения записей, в этом ли проблема?

Herman&lt;T&gt;.Instance

Это возможно. Если транзакция (еще) не зафиксирована при остановке приложения, база данных выполнит откат, и таким образом вы пропустите данные.

Richard MacCutchan

Скорее всего, файл каким-то образом воссоздается в вашей IDE или где-то еще в вашем приложении.

Uwakpeter

как узнать, где воссоздается запись?

Richard MacCutchan

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

RAMASWAMY EKAMBARAM

Может быть, "вставка" не была "зафиксирована".

1 Ответов

Рейтинг:
1

Uwakpeter

Я смог решить эту проблему, перейдя в окно свойств приложения, в разделе Настройки я добавил строку подключения, которая указывает на строку подключения в файле app.config. Я также установил свойство copy to output directory базы данных для копирования, если оно более новое, и проблема была решена, благодаря всем, кто внес свой вклад.