一、什么是 SQLite 数据库

  SQLite 是嵌入式SQL数据库引擎。与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程。SQLite 直接读取和写入普通磁盘文件。具有多个表,索引,触发器和视图的完整 SQL 数据库包含在单个磁盘文件中。数据库文件格式是跨平台的-您可以在32位和64位系统之间或在big-endian和 little-endian 体系结构之间自由复制数据库 。这些功能使SQLite成为应用程序文件格式的流行选择。

  它还是一个本地数据库,在本地生成一个数据库文件,不需要借助网络就能访问。

二、SQLite 的下载安装

  官网下载地址:https://www.sqlite.org/download.html

  

  找到你所对应的版本,我这里以 windows 为例,下载 sqlite-tools-win32-x86-3390400.zip 和 sqlite-dll-win64-x64-3390400.zip 两个文件,将文件解压放置单独的文件夹,解压后一共是 5 个文件

  

  然后在电脑的环境变量中去配置这个文件夹的路径

  

  到这一步,安装和配置已经完成了,接下来就要验证是否安装成功了。打开 CMD 命令版,输入 sqlite3,出现版本信息,则表示安装成功

  如果输入出现提示 sqlite3 不是内部命令,那就是环境变量没有生效,配置环境变量后要重新启动电脑才能生效

  

三、SQLite在程序中使用

  这里以 .Net Framework 的项目为例演示

  1、引用 SQLite 相关的包即可,NuGet 搜索 System.Data.SQLite ,点击安装,会自动下载所依赖的其他包

    注意:不要在官网下载 System.Data.SQLite.dll ,如果你在官网下载这个 dll ,直接添加引用,运行代码时会报错 ,无法加载“DLL “SQLite.Interop.dll”:找不带指定模块”,很难解决

  

  2、新建一个文本将文件扩展名改为 db ,这样我们就能本地访问这个数据库

    

  3、访问查看 SQLite 数据库,有多种方式

    可以使用官方提供的工具 SQLiteStudio :https://sqlitestudio.pl/

    也可以使用其他的数据库链接工具(这里使用的是 Navicat),如下,选择连接数据库的类型为 SQLite,添加链接,选择现有的数据库文件就行,不需要账号和密码

    

  4、写 SQLite 帮助类

    我这里写的比较简单,只有 3 个方法

    因为 SQLite 可以本地读取的数据库,所以数据库链接要写成 绝对路径,如:C:\数据库\xx.db

 1 using System;
2 using System.Collections.Generic;
3 using System.Data;
4 using System.Data.SQLite;
5 using System.Linq;
6 using System.Web;
7
8 namespace WebApplication1.DBhelper
9 {
10 public static class SqliteHelper
11 {
12 /// <summary>
13 /// 获取连接字符串
14 /// </summary>
15 /// <returns>连接字符串</returns>
16 public static string GetSqlConnectionString()
17 {
18 //return ConfigurationManager.ConnectionStrings["Sql"].ConnectionString;
19 return "data source=C:\\TestProject\\DB\\sqliteDb.db"; //xx.db 用绝对路径
20 }
21
22 /// <summary>
23 /// 执行查询语句,返回DataSet
24 /// </summary>
25 /// <param name="SQLString">查询语句</param>
26 /// <returns>DataSet</returns>
27 public static DataSet GetDataSet(string SQLString)
28 {
29 using (SQLiteConnection connection = new SQLiteConnection(GetSqlConnectionString()))
30 {
31 DataSet ds = new DataSet();
32 try
33 {
34 connection.Open();
35 SQLiteDataAdapter command = new SQLiteDataAdapter(SQLString, connection);
36 command.Fill(ds, "ds");
37 }
38 catch (System.Data.SQLite.SQLiteException ex)
39 {
40 throw new Exception(ex.Message);
41 }
42 return ds;
43 }
44 }
45
46 /// <summary>
47 /// 执行查询语句,返回DataTable
48 /// </summary>
49 /// <param name="SQLString"></param>
50 /// <returns></returns>
51 /// <exception cref="Exception"></exception>
52 public static DataTable GetDataTable(string SQLString)
53 {
54 using (SQLiteConnection connection = new SQLiteConnection(GetSqlConnectionString()))
55 {
56 DataTable dt = new DataTable();
57 try
58 {
59 connection.Open();
60 SQLiteDataAdapter command = new SQLiteDataAdapter(SQLString, connection);
61 command.Fill(dt);
62 }
63 catch (System.Data.SQLite.SQLiteException ex)
64 {
65 throw new Exception(ex.Message);
66 }
67 return dt;
68 }
69 }
70
71 /// <summary>
72 /// 执行操作语句,返回成功与否
73 /// </summary>
74 /// <param name="SQLString"></param>
75 /// <returns></returns>
76 public static bool RunSQL(string SQLString)
77 {
78 using (SQLiteConnection connection = new SQLiteConnection(GetSqlConnectionString()))
79 {
80 try
81 {
82 connection.Open();
83 SQLiteCommand cmd = connection.CreateCommand();
84 cmd.CommandText = SQLString;
85 cmd.ExecuteNonQuery();
86 return true;
87 }
88 catch (Exception ex)
89 {
90 return false;
91 }
92 }
93 }
94 }
95 }

  那么到这里,SQLite 的安装和使用已经结束了。如果你的项目中有部分数据是不需要存储到线上服务器,只需要留存在用户本地的话,使用 SQLite 是个很好的选择,根据项目实际情况而定。

  比如,我在用户使用输入框时,保存了用户的搜索记录,下次用户再搜索时,可将以往的记录展示出来,虽然可以保存在缓存中,但是缓存容易丢失,使用 SQLite 只要数据库文件还在,数据没删,随时可以使用,而且性能也还不错。

  

最新文章

  1. 两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置
  2. 【C#公共帮助类】DateTimeHelper设置电脑本地时间,实际开发很需要
  3. apache ab下载测试
  4. 接口JSon字符串格式
  5. 使用dotTrace6.0进行内存分析
  6. LintCode-Serialization and Deserialization Of Binary Tree
  7. hdu 2155 小黑的镇魂曲(dp) 2008信息工程学院集训队——选拔赛
  8. 优化SQL Server数据库查询方法
  9. ios开发中button控件的属性及常见问题
  10. getJSON回调函数不执行问题?
  11. fuzzing学习
  12. 如何在IIS上发布网站
  13. Chromium(Chrome) Sandbox Details
  14. 为什么我的Linux ls命令不能用了?
  15. 注入技术--LSP劫持注入
  16. JS创建对象之工厂模式
  17. The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar报错
  18. tomcat发布html静态页面
  19. jQery的方法
  20. Json序列化问题

热门文章

  1. 字节跳动端智能工程链路 Pitaya 的架构设计
  2. C语言小游戏: 推箱子 支线(一)--1
  3. Linux有趣命令
  4. Batch Norm 与 Layer Norm 比较
  5. python一招完美搞定Chromedriver的自动更新
  6. 在工作组的环境中配置Windows 2012 R2的远程桌面服务
  7. VLAN的配置
  8. 【COS生态建设】开发者有奖调研,等你来参与!
  9. Solutions:Elastic workplace 搜索:随时随地搜索所有内容 (一)
  10. Kafka Eagle 3.0.1功能预览