[英]How to dump SQLite in-memory database into file with ADO.NET?
我正在使用System.Data.SQLite.dll
來使用SQLite內存數據庫。 程序完成后,我想將內存數據庫轉儲到.db3文件中以供下次使用。 我怎樣才能在C#中實現這一目標?
據我所知,在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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.