I am using System.Data.SQLite.dll
to make use of the SQLite in-memory database. After the program finishes, I would like to dump the in-memory database into a .db3 file for next use. How can I achieve this in 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 に答える