SQLite介绍
SQLite是一个类似于Access的单机版数据库管理系统,它将所有数据库的定义(包括定义、表、索引和数据本身)都保存在一个单一的文件中。并且,SQLite是一个用C实现的类库,它在内存消耗、文件体积、简单性方面都有不错的表现,如果数据在10W条以下,查询速度也是相当快的。
SQLite具有以下特征:
实现多数SQL92的标准,包括事务(原子性、一致性、隔离性和持久性)、触发器和大多数的复杂查询。
不对插入或者更新的数据进行类型检查,你可以将字符串插入到整数列中(这个可能让有些用户不太适应)。
支持Windows/Linux/Unix等主流系统,还支持嵌入式系统如Android或Windows Mobile。
System.Data.SQLite的前期准备
1、System.Data.SQLite 库下载,用于C#操作SQLite的dll文件。下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
2、SQLite可视化工具下载,用于查看SQLite库数据表数据。下载地址:http://www.sqliteexpert.com/download.html
System.Data.SQLite通用类
可以分为以下几种情况:
1、创建数据库文件;
2、返回DataTable;
3、返回DataReader;
4、执行增删改,返回受影响的行数;
5、执行查询,返回第一行第一列(通常用于带有行函数的查询,如SUM/AVG/COUNT等);
6、返回库中所有的表;
因为在System.Data.SQLite中不存在存储过程,所以所有的操作都是基于文本的SQL语句,为了避免SQL注入,所以使用了参数化的SQL语句。
一、创建、删除SQLite数据库文件
为了增加格式的规范性,在项目的App.config文件的配置文本中添加数据库文件路径。
如下connectionStrings标签:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add name="itcastCater" connectionString="data source=C:\Users\**\**\itcastCater.db;version=3;"/>
</connectionStrings>
</configuration>
运行方法 SQLiteConnection.open 就会创建个空的指定名字的数据库文件。
using System.Data.SQLite;
using System.Configuration;
//从app.config配置文本中读取连接字符串,获取数据库文件的绝对路径“Data Sounce”
private static string connStr = ConfigurationManager.ConnectionStrings["itcastCater"].ConnectionString;
static void Create()
{
SQLiteConnection cn = new SQLiteConnection(connStr);
//按照路径创建数据库文件
cn.Open();
cn.Close();
}
由于数据库是文件类型的,直接用System.IO.File.Delete(string path) 方法来删除文件。
//删除数据库
static void Delete()
{
if (System.IO.File.Exists(connStr))
{
System.IO.File.Delete(connStr);
}
}
二、创建、删除数据库表
创建表格要用到 SQL 命令。
建立一个表的顺序如下步骤(也可以用可视化工具 SQLiteExpert 来创建):
1、建立数据库连接;
2、打开数据库(如果没有数据库,Open 也会新创建一个数据库);
3、声明一个 SQLiteCommand 类,主要用来放置和运行 SQL 命令的;
4、把 SQLiteCommand 的 Connection 和 SQLiteConnection 联系起来;
5、往 SQLiteCommand 的 CommandText 输入 SQL 语句 CREATE TABLE 语句;
6、调用 SQLiteCommand.ExcuteNonQuery() 方法运行。
//创建数据库表
static void CreateTable()
{
SQLiteConnection cn = new S