内容简介:前面写过一篇文章《C# SQLite 数据库使用说明》,介绍的是 C# 语言用最原始的 ADO.net 方式操作 SQLite 数据库。可是这种方式很久没用过了,主要是因为 Dapper 和 PetaPoco 太好了用本文参照 DarkThread 的文章,整理了一套 C# 使用 Dapper 操作 SQLite 数据库的实例,方便自己日后查询。本程序依赖 Nuget 上三个包:System.Data.SQLite.Core(SQLite 包包含了EF完整依赖,这里不需要使用EF)、Dapper 和 New
1. 概述
前面写过一篇文章《C# SQLite 数据库使用说明》,介绍的是 C# 语言用最原始的 ADO.net 方式操作 SQLite 数据库。可是这种方式很久没用过了,主要是因为 Dapper 和 PetaPoco 太好了用
本文参照 DarkThread 的文章,整理了一套 C# 使用 Dapper 操作 SQLite 数据库的实例,方便自己日后查询。
2. 前置条件
本程序依赖 Nuget 上三个包:System.Data.SQLite.Core(SQLite 包包含了EF完整依赖,这里不需要使用EF)、Dapper 和 Newton.Json。
实例程序可以直接还原 Nuget 包:
如需自己安装,可以参考如需图片:
3. 程序说明
软件运行,先检查 SQLite 数据库文件是否存在。若不存在在建立 SQLiteConnection 时,SQLite 会自动创建。接着执行建表语句 CREATE TABLE 。
using Dapper;
using Newtonsoft.Json;
using System;
using System.Data.SQLite;
using System.IO;
namespace SQLiteDapper
{
class Program
{
//数据库放在程序运行根目录
static string dbPath = @".\Test.sqlite";
static string connStr = "data source=" + dbPath;
//测试数据
static Player[] TestData = new Player[]
{
new Player("P01", "Jeffrey", DateTime.Now, 32767),
new Player("P02", "Darkthread", DateTime.Now, 65535),
};
static void Main(string[] args)
{
//初始化数据库
InitSQLiteDb();
//测试插入
TestInsert();
//测试获取
TestSelect();
Console.Read();
}
#region 初始化数据库
static void InitSQLiteDb()
{
//数据库存在则跳过
if (File.Exists(dbPath))
{
return;
}
using (var conn = new SQLiteConnection(connStr))
{
conn.Execute(@"
CREATE TABLE Player (
Id VARCHAR(16),
Name VARCHAR(32),
RegDate DATETIME,
Score INTEGER,
BinData BLOB,
CONSTRAINT Player_PK PRIMARY KEY (Id)
)");
}
}
#endregion
#region 测试插入数据
static void TestInsert()
{
using (var cn = new SQLiteConnection(connStr))
{
//清空旧数据防止插入失败
cn.Execute("DELETE FROM Player");
//参数 MSSQL 和 SQLite 使用 @paramName ,Oracle 使用 :paramName
var insertScript = "INSERT INTO Player VALUES (@Id, @Name, @RegDate, @Score, @BinData)";
cn.Execute(insertScript, TestData);
//测试主键 Primary Key
try
{
//插入错误的信息
cn.Execute(insertScript, TestData[0]);
throw new ApplicationException("失败:未阻止主键重复");
}
catch (Exception ex)
{
Console.WriteLine($"测试成功:{ex.Message}");
}
}
}
#endregion
#region 测试获取数据
static void TestSelect()
{
using (var cn = new SQLiteConnection(connStr))
{
var list = cn.Query("SELECT * FROM Player");
Console.WriteLine(JsonConvert.SerializeObject(list, Newtonsoft.Json.Formatting.Indented));
}
}
#endregion
}
}
源码下载
以上所述就是小编给大家介绍的《SQLite 数据库 C# Dapper 操作实例》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- MongoDB 查询操作的实例详解
- java操作mongoDB查询的实例详解
- 详解MongoDB数据库基础操作及实例
- JVM指令分析实例五(操作数栈)
- 基于商城实例的小程序购物车云函数操作
- Linux 中命令链接操作符的十个最佳实例
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML & CSS设计与构建网站
[美] Jon Duckett / 刘涛、陈学敏 / 清华大学出版社 / 2013-1 / 59.80元
欢迎您选择一种更高效的学习HTML和CSS的方式。不管您设计和建立新网站,还是想更好地控制现有网站,都可以在《HTML & CSS 设计与构建网站》一书的指导下创建出用户友好、令用户赏心悦目的Web内容。我们知道,编码是一项令人望而生畏的工作,而本书却采用有别于许多传统编程书籍的新颖编排方式,将使您收到事半功倍的学习效果。 每一页都在短小精悍的示例代码的引导下,简明直观、直截了当地阐述一个新......一起来看看 《HTML & CSS设计与构建网站》 这本书的介绍吧!