当前位置:网站首页>SQLite数据库连接字符串
SQLite数据库连接字符串
2022-07-31 05:43:00 【风神修罗使】
(基本的)
Data Source=filename;Version=3;
(使⽤编码)Using UTF16
Data Source=filename;Version=3;UseUTF16Encoding=True
(带密码的)
Data Source=filename;Version=3;Password=myPassword;
(使⽤前数据库格式)Using the pre 3.3x database format3.3x
Data Source=filename;Version=3;Legacy Format=True;
(只读连接)
Data Source=filename;Version=3;Read Only=True;
(设置连接池)
Data Source=filename;Version=3;Pooling=False;Max Pool Size=100;
使用DateTime。刻度作为日期时间格式
Data Source=filename;Version=3;DateTimeFormat=Ticks;
(把作为⽂本存储,默认是)
Data Source=filename;Version=3;BinaryGUID=False;
如果把Guid作为⽂本存储需要更多的存储空间(指定⼤⼩)
Data Source=filename;Version=3;Cache Size=2000;
Cache Size 单位是字节(指定页⼤⼩)
Data Source=filename;Version=3;Page Size=1024;
指定连接Sqlite数据库的缓存⼤⼩:
Data Source=mydb.db;Version=3;Cache Size=3000;
SQLite的连接字符串
--Basic(基本的)
Data Source=filename;Version=3;
--Using UTF16(使用UTF16编码)
Data Source=filename;Version=3;UseUTF16Encoding=True;
--With password(带密码的)
Data Source=filename;Version=3;Password=myPassword;
--Using the pre 3.3x database format(使用3.3x前数据库格式)
Data Source=filename;Version=3;Legacy Format=True;
--Read only connection(只读连接)
Data Source=filename;Version=3;Read Only=True;
--With connection pooling(设置连接池)
Data Source=filename;Version=3;Pooling=False;Max Pool Size=100;
--Using DateTime.Ticks as datetime format()
Data Source=filename;Version=3;DateTimeFormat=Ticks;
--Store GUID as text(把Guid作为文本存储,默认是Binary)
Data Source=filename;Version=3;BinaryGUID=False;
-- 如果把Guid作为文本存储需要更多的存储空间
--Specify cache size(指定Cache大小)
Data Source=filename;Version=3;Cache Size=2000;
-- Cache Size 单位是字节
--Specify page size(指定页大小)
Data Source=filename;Version=3;Page Size=1024;
-- Page Size 单位是字节
加载加密sqlite到内存
背景
为了使C#更好的适配Linux,不得不将依赖从 System.Data.SQLite
转到 Microsoft.Data.Sqlite
并要求Linux程序支持加密数据库文件,但使 Microsoft.Data.Sqlite
默认不支持加密数据库文件,但是可以使用 SQLCipher
, SEE
或者SQLiteCrypt
去支持加密数据库文件。
如果不是加密的数据库文件,通过下面操作将物理数据库,备份到已经创建的可分享内存数据库
var connectionString = new SqliteConnectionStringBuilder("Data Source=sampleDatabase.db")
{
Mode = SqliteOpenMode.ReadWriteCreate
}.ToString();
var connection = new SqliteConnection(connectionString);
connection.Open();
var inMemConnectionString = new SqliteConnectionStringBuilder("Data Source=InMemorySample;Mode=Memory;Cache=Shared")
{
Mode = SqliteOpenMode.ReadWriteCreate
}.ToString();
var inMemConnection = new SqliteConnection( inMemConnectionString );
inMemConnection.Open();
connection.BackupDatabase(inMemConnection, connection.Database, connection.Database);
问题
如上操作,将加密数据库加载到内存会抛异常 SqliteException
,提示信息:
backup is not supported with encrypted databases.
解决
将带有空密码的可分享内存数据库,加载到加密的数据库,然后使用sqlcipher_export
,将数据解密保存到内存数据库中,最后将加密数据库卸载, 你就可以愉快的使用内存数据库了, 但是内存数据库是不支持加密的。
var connectionString = new SqliteConnectionStringBuilder("Data Source=encrypted.db")
{
Mode = SqliteOpenMode.ReadWriteCreate,
Password = "somePassword"
}.ToString();
var connection = new SqliteConnection(connectionString);
connection.Open();
var query = "ATTACH DATABASE 'file:InMemorySample?mode=memory&cache=shared' AS inMemDb KEY ''; SELECT sqlcipher_export('inMemDb'); DETACH DATABASE inMemDb;";
using var cmd = new SqliteCommand(query, connection);
var res = cmd.ExecuteNonQuery();
connection.Close();
var inMemConnectionString = new SqliteConnectionStringBuilder("Data Source=InMemorySample;Mode=Memory;Cache=Shared")
{
Mode = SqliteOpenMode.ReadWriteCreate
}.ToString();
var inMemConnection = new SqliteConnection( inMemConnectionString );
inMemConnection.Open();
边栏推荐
- mysql索引失效的常见9种原因详解
- Third-party library-store
- 【TA-霜狼_may-《百人计划》】美术2.3 硬表面基础
- CHI论文阅读(1)EmoGlass: an End-to-End AI-Enabled Wearable Platform for Enhancing Self-Awareness of Emoti
- OSI七层模型
- cp 的用法
- MySQL系列一:账号管理与引擎
- 运行 npm 会弹出询问 “你要如何打开这个文件?“
- 自动翻译软件-批量批量自动翻译软件推荐
- 零样本学习&Domain-aware Visual Bias Eliminating for Generalized Zero-Shot Learning
猜你喜欢
随机推荐
MySQL的触发器
浅析v-model语法糖的实现原理与细节知识及如何让你开发的组件支持v-model
nohup principle
(border-box)盒子模型w3c、IE的区别
《白帽子说Web安全》思维导图
浅析重复线性渐变repeating-linear-gradient如何使用
Oracle入门 04 - Vmware虚拟机安装配置
Skywalking UI使用
外贸网站优化-外贸网站优化教程-外贸网站优化软件
Kubernetes调度
数据库原理作业3 — JMU
Exam Questions Previous True Questions Wrong Bills [The Fourth Session] [Provincial Competition] [Group B]
零样本学习&Domain-aware Visual Bias Eliminating for Generalized Zero-Shot Learning
第十七章:回溯探求指定入口的马步遍历,贪心无回溯探求马步遍历,递归探求nxm棋盘带障碍马步遍历
Zotero | Zotero translator插件更新 | 解决百度学术文献无法获取问题
Analysis of the implementation principle and detailed knowledge of v-model syntactic sugar and how to make the components you develop support v-model
使用powerDesigner反向工程生成Entity
Koa框架的基本使用
单点登录 思维导图
03-SDRAM:写操作(突发)