2011-02-03 3 views
11

Как получить резервную копию базы данных SQLite в памяти? Я создаю базу данных в своем приложении Windows. Я хочу взять резервную копию базы данных, когда я закрою приложение.Резервное копирование базы данных SQLite в .NET.

+0

возможно дубликат [C# SQLite памяти потока в БД] (http://stackoverflow.com/questions/11383775/c-sharp-sqlite-memory-stream-as -db) – lxa

ответ

10

Вы хотите SQLite Online Backup API.

Насколько мне известно, System.Data.SQLite еще не поддерживает его, поэтому вам нужно будет написать код. Форум System.Data.SQLite содержит пример: http://sqlite.phxsoftware.com/forums/t/2403.aspx. Как уже отмечалось, когда вы исправляете System.Data.SQLite и вызываете SQLite напрямую, вы делаете это на свой страх и риск.

0

Что делать, если вы хотите поменять "in-memory database" на "файловую базу данных"?

Если вы закроете приложение, файл все равно будет там.

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

+3

Нет ... на самом деле мы хотим использовать только базу данных памяти. Это наше основное требование. – Omkar

0

вы можете попробовать этот код

using (var location = new SQLiteConnection(@"Data Source=activeDb.db; Version=3;")) 
using (var destination = new SQLiteConnection(@"Data Source=backupDb.db; Version=3;")) 
{ 
    location.Open(); 
    destination.Open(); 
    location.BackupDatabase(destination, "main", "main", -1, null, 0); 
} 
Смежные вопросы