加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何使用ADO.NET将SQLite内存数据库转储到文件中?

发布时间:2020-12-15 08:40:06 所属栏目:百科 来源:网络整理
导读:我正在使用System.Data.SQLite.dll来使用SQLite内存数据库.程序完成后,我想将内存数据库转储到.db3文件中以供下次使用.我怎样才能在C#中实现这一目标? 解决方法 据我所知,在System.Data.SQLite.dll中没有内置功能来完成此任务.但是,与SQLite核心一起维护的s
我正在使用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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读