簡體   English   中英

如何使用ADO.NET將SQLite內存數據庫轉儲到文件中?

[英]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做的方法:

  1. 獲取SQL語句以創建新的數據庫結構。

     select sql from sqlite_master where name not like 'sqlite_%'; 
  2. 獲取所有用戶表的名稱。

     select name from sqlite_master where type='table' and name not like 'sqlite_%'; 
  3. 在一些新的SQLiteConnection中創建磁盤數據庫。

  4. 執行所有以前獲取的SQL語句,以在磁盤數據庫中創建數據庫結構。

  5. 關閉與磁盤數據庫的單獨連接。

  6. 將磁盤數據庫附加到內存數據庫。

     attach 'ondisk.db3' as 'ondisk'; 
  7. 對於先前獲取的每個用戶表,將內容從內存中復制到磁盤上數據庫。

     insert into ondisk.TableX select * from main.TableX; insert into ondisk.TableY select * from main.TableY; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM