.NET中SQLite内存数据库备份

14

如何备份SQLite内存数据库?我在我的Windows应用程序中创建了数据库。我想在关闭应用程序时进行数据库备份。


可能是C# SQLite内存流作为数据库的重复问题。 - lxa
作为一名软件工程师来说,这个问题真是荒谬而不合逻辑。备份意味着将数据实际存储在某个地方(不再是内存中),而不是将其复制到另一台运行中的机器的RAM中! - Espresso
3个回答

11

文档:“在线备份API允许将一个数据库的内容复制到另一个数据库文件中。”这个问题太荒谬了...任何“备份”都会被持久化在非内存(非RAM)中! - Espresso

1

你可以尝试这段代码

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);
}

你的回答与问题不相关,因为问题是关于内存数据库而不是基于文件的数据库。 - Umer Zaman
这个回答并不是脱离上下文的。问题本身荒谬,因为那个所谓的“软件工程师”没有理解备份上下文中“物理持久性”一词的含义。 - Espresso

0

用"基于文件的数据库"替换"内存数据库"怎么样?

如果你关闭了应用程序,文件仍将存在。

在程序启动时,您必须确保删除数据库文件。


3
实际上我们只希望使用内存数据库,这是我们的主要需求。 - Omkar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接