使用System.Data.Sqlite进行Sqlite在线备份

25

如何在sqlite数据库在线的情况下,在原生C#代码中进行备份?所有在线备份API示例均为C代码。

1个回答

46

在线备份API已于2012年4月1日版本1.0.80.0中添加到System.Data.Sqlite。您可以在存在其他外部连接的情况下创建数据库备份,如下所示:

using(var source = new SQLiteConnection("Data Source=ActiveDb.db; Version=3;"))
using(var destination = new SQLiteConnection("Data Source=BackupDb.db; Version=3;"))
{
    source.Open();
    destination.Open();
    source.BackupDatabase(destination, "main", "main", -1, null, 0);
}

此外,如果BackupDb.db不存在,它将被创建。


3
你的例子是正确的,但我想提醒一下,两个数据库的事务都必须关闭,否则你会在 SQLite 中得到一个“未知错误”! - Lorenzo Isidori

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