内容简介:前面写过一篇文章《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 中命令链接操作符的十个最佳实例
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Elements of Information Theory
Thomas M. Cover、Joy A. Thomas / Wiley-Blackwell / 2006-7 / GBP 76.50
The latest edition of this classic is updated with new problem sets and material The Second Edition of this fundamental textbook maintains the book's tradition of clear, thought-provoking instr......一起来看看 《Elements of Information Theory》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
正则表达式在线测试
正则表达式在线测试