C#使用SQLite(含加密)保姆级教程

C#使用SQLite

涉及框架及库

自己在NuGet管理器里面安装即可

  • Chloe.SQLite:ORM框架
  • Microsoft.Data.Sqlite.Core:驱动
  • SQLitePCLRaw.bundle_e_sqlcipher:SQLite加密扩展

复制runtimes

主要复制两个dll:e_sqlite3.dlle_sqlcipher.dll
复制到项目根目录下,保持原有的结构,删除不使用的平台即可,设置属性为如果较新则复制
在这里插入图片描述

dll文件查找位置主要是自己的nuget缓存目录中
在这里插入图片描述

或者自己去NuGet下载:SQLitePCLRaw.lib.e_sqlite3SQLitePCLRaw.lib.e_sqlcipher
在这里插入图片描述

然后用压缩软件打开即可获取到dll文件
在这里插入图片描述

创建加密SQLite文件

生成连接字串

使用SqliteConnectionStringBuilder类,我们可以便捷的构建数据库连接字符串。

SqliteConnectionStringBuilder sqliteConnectionStringBuilder = new SqliteConnectionStringBuilder();
sqliteConnectionStringBuilder.DataSource = "tanovo.db";
sqliteConnectionStringBuilder.Password = "123456";
sqliteConnectionStringBuilder.Mode = SqliteOpenMode.ReadWriteCreate;
SQLiteConnectionString = sqliteConnectionStringBuilder.ToString();

后续想在项目任何地方使用数据库,只需要使用

using var db = App.sqlite;

获取数据库上下文对象即可。

执行SQL生成表

如果不至少生成一个表在库中的话,则生成的数据库文件是非加密的,可能只有数据库有数据时,数据库才是加密类型的。

using var db = App.sqlite;
db.Session.ExecuteNonQuery(@"
    CREATE TABLE IF NOT EXISTS test_table
    (
      id INTEGER PRIMARY KEY AUTOINCREMENT,
      name TEXT,
      update_time TEXT,
      cteate_time TEXT
    );");

SQLiteConnectionFactory.cs

提供一下这个工厂类,方便伸手党直接复制了

using Chloe.Infrastructure;
using Microsoft.Data.Sqlite;
using System.Data;

namespace TestSqliteC.DatabaseHelper
{
    public class SQLiteConnectionFactory : IDbConnectionFactory
    {
        string _connString = null;

        public SQLiteConnectionFactory(string connString)
        {
            this._connString = connString;
        }

        public IDbConnection CreateConnection()
        {
            IDbConnection conn = new SqliteConnection(this._connString);
            return conn;
        }
    }
}

代码结构

因为我是WPF程序,所以在App构造函数中对SQLite就进行初始化操作了。
在这里插入图片描述

最后

这里还推荐三个开源项目,一个是嵌入式的NoSQL数据库,一个是文件存储引擎,都是同一个人开发的,项目也很不错!
最后一个是SQLiteStudio,可以打开并浏览SQLite加密数据库文件,提供图形化界面,可以管理数据库文件。

  1. LiteDB
  2. FileDB
  3. SQLiteStudio
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 语言中是如何被使用的? SQLite是一种轻量的关系型数据库管理系统,它被广泛地用于各种平台上,包括C语言。在C语言中,SQLite提供了简单易用的API来访问数据库SQLite API由大约40个函数组成,可以在程序中执行各种各样的数据库操作。 在C语言中,使用SQLite是非常方便的。只需要下载SQLite库文件,然后在程序中包相关的头文件,就可以开始使用SQLite API。SQLite API包括创建数据库、查询数据、修改数据等许多功能。其中最常用的函数包括 sqlite3_open()、sqlite3_exec()、sqlite3_prepare_v2()、sqlite3_step()、sqlite3_finalize() 等。 使用SQLite API的第一步是打开一个数据库,可以使用 sqlite3_open() 函数来打开一个SQLite数据库文件。一旦数据库被打开,就可以使用 SQLite SQL 来执行各种数据库操作,如创建表、插入数据、查询数据等。这些操作可以使用 sqlite3_exec() 函数来执行。 对于复杂的操作,可以使用 sqlite3_prepare_v2() 和 sqlite3_step() 函数来执行。sqlite3_prepare_v2() 函数用于准备 SQL 语句,而 sqlite3_step() 函数用于执行 SQL 语句并获取结果。最后,可以使用 sqlite3_finalize() 函数来释放资源。 总之,SQLite是一种非常强大而又易于使用数据库管理系统,在C语言中可以很方便地使用它来处理数据。它不仅可以用于开发桌面应用程序,也可以用于移动应用程序和嵌入式系统。 ### 回答2: 语言中的用途是什么? SQLite是一种轻量的关系型数据库管理系统,它可以嵌入到C语言中,并被广泛用于各种应用程序的数据存储和管理。SQLite的独立性和可移植性使得它成为最受欢迎的嵌入式数据库之一。 在C语言中,使用SQLite可以快速、高效地管理大量数据,包括存储、查询、更新和删除等操作。SQLite还提供了各种功能强大的API,使得开发人员可以轻松地与数据库进行交互,以实现各种复杂的数据操作,例如事务处理、查询优化和数据加密等。 由于SQLite使用纯C语言编写,因此它可以在几乎所有支持C语言的平台上运行,包括Windows、Linux、Unix和Mac OS X等操作系统。此外,SQLite还提供了多语言支持,使得它可以在不同的编程语言中使用,例如Python、Java和PHP等。 总之,SQLite在C语言中的用途非常广泛,它为开发人员提供了一种高效、可靠且易于使用数据库管理系统,极大地简化了应用程序的数据处理和管理。 ### 回答3: 语言中的作用是什么? SQLite是一种轻量的关系型数据库管理系统,是一款由C语言编程实现的程序库,无需独立的服务器进程或系统,而是直接读取或写入磁盘上存储的文件。在C语言中,SQLite扮演了一种存储数据的角色,使得开发者可以很方便地将数据存储在本地文件中,不再需要依赖其他的数据库管理系统。 在C语言的开发中,SQLite减少了对复杂的数据库管理软件的依赖性,同时提升了对数据的处理速度和效率。它使用简单,易于维护,并且可以与其他编程语言相互通信,这意味着它在各种应用程序开发中都具有广泛的应用。使用SQLite,开发者可以轻松地创建、读取、更新和删除数据,使得我们可以更加专注于应用程序的逻辑开发。 因此,总的来说,SQLite在C语言中的作用主要是为了快速、简单地存储和管理数据,让开发者专注于业务逻辑的开发,提高软件开发的效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0564丶Kang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值