我正在使用System.Data.SQLite.dll
SQLite 内存数据库。程序完成后,我想将内存数据库转储到 .db3 文件中以备下次使用。如何在 C# 中实现这一点?
问问题
6179 次
1 回答
8
据我所知,System.Data.SQLite.dll 中没有内置功能来完成此操作。然而,该功能确实存在于与 SQLite 核心一起维护的 sqlite3.exe 客户端中。
这就是我使用 system.data.sqlite.dll 的方式:
获取 SQL 语句以创建新的数据库结构。
select sql from sqlite_master where name not like 'sqlite_%';
获取所有用户表的名称。
select name from sqlite_master where type='table' and name not like 'sqlite_%';
在一些新的 SQLiteConnection 中创建磁盘数据库。
执行之前获取的所有 SQL 语句,在磁盘数据库中创建数据库结构。
关闭与磁盘数据库的单独连接。
将磁盘数据库附加到内存数据库。
attach 'ondisk.db3' as 'ondisk';
对于之前获得的每个用户表,将内容从内存复制到磁盘数据库。
insert into ondisk.TableX select * from main.TableX; insert into ondisk.TableY select * from main.TableY;
于 2012-08-31T09:19:27.720 回答