内容简介:前面写过一篇文章《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 中命令链接操作符的十个最佳实例
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Algorithms + Data Structures = Programs
Niklaus Wirth / Prentice Hall / 1975-11-11 / GBP 84.95
It might seem completely dated with all its examples written in the now outmoded Pascal programming language (well, unless you are one of those Delphi zealot trying to resist to the Java/.NET dominanc......一起来看看 《Algorithms + Data Structures = Programs》 这本书的介绍吧!