通用的CRUD之Sqlite

  • 通用的CRUD之Sqlite已关闭评论
  • 140 次浏览
  • A+
所属分类:.NET技术
摘要

SQLite是一种轻量级的关系型数据库管理系统,支持跨平台操作。它可以嵌入到程序中,无需单独的服务器进程或者配置文件,减少了数据库维护的负担和运行的复杂性。SQLite的数据存储在单个文件中,方便备份、传输和分享,也容易进行版本管理。SQLite拥有良好的性能、可靠的稳定性和丰富的功能,成为了许多应用程序和操作系统中的首选数据库解决方案。
话不多说,现在切入正题
让我一步一步带你增删改查。


前言

SQLite是一种轻量级的关系型数据库管理系统,支持跨平台操作。它可以嵌入到程序中,无需单独的服务器进程或者配置文件,减少了数据库维护的负担和运行的复杂性。SQLite的数据存储在单个文件中,方便备份、传输和分享,也容易进行版本管理。SQLite拥有良好的性能、可靠的稳定性和丰富的功能,成为了许多应用程序和操作系统中的首选数据库解决方案。
话不多说,现在切入正题
让我一步一步带你增删改查。

安装

Install-Package DbCRUD.SqlLite 安装包

数据库连接及初始化

 //数据库连接 IDbCRUD testdb = new SqlLiteCRUD($@"Data Source=sqlitedb.db; Cache=Shared"); 

插入数据

int dbcount =testdb.TableExists(tb_custormer)? testdb?.Count(tb_custormer)??0: 0; //**同步插入对象数据 var customer = new CrudTestModel {    ID = dbcount + 1, ////实体类,ID不赋值,默认根据数据类型自动整数编号,支持int,long,objectid    Name = "对象插入",    Phones = new string[] { "80000", "90000" },    Dic = new Dictionary<string, object>    {        { "Name", "嵌套数据" },        { "DDate", DateTime.Now }    },    IsActive = true, }; 

通用的CRUD之Sqlite

//**同步插入字典数据 var dic1 = new Dictionary<string, object> {    //{ "ID", 1 },//***如果不指定ID,插入时会自动编一个int的唯一ID    { "Name", "自动编号插入" },    { "Qty", DateTime.Now.Minute},    { "DDate", DateTime.Now } }; var result11 = testdb.Insert(autoIDData, dic1); //**批量插入列表 List<Dictionary<string, object>> listdata = new List<Dictionary<string, object>>(); int maxid = testdb.Max<int>(dictable); for (int i = 0; i < 10; i++) {    maxid++;    var dic2 = new Dictionary<string, object>    {        { "ID",maxid },        { "Name", $"批量插入{i}" },        { "Qty", 19+maxid},        { "DDate", DateTime.Now }    };    listdata.Add(dic2); } var listResult= testdb.Insert(dictable, listdata); 

更新数据

//更新前 var updatepre = testdb.Find<Dictionary<string, object>>(dictable, "ID=2")?.FirstOrDefault();            var updata = new Dictionary<string, object> {     { "Name", "更新指定字段数据" },     { "Qty", 600} }; var upresult = testdb.UpDate(dictable, updata, "ID=2");   //更新ID=2的数据 Assert.IsTrue(upresult.Stutas); //更新后 var getupdata = testdb.Find<Dictionary<string, object>>(dictable, "ID=2")?.FirstOrDefault(); Assert.AreEqual(300, getupdata.GetValueOrDefault("Qty", 0)); 

通用的CRUD之Sqlite

更新及插入数据(数据存在更新,不存在插入)

   //** 更新或插入数据    var dic1 = new Dictionary<string, object>    {        { "ID", 2 },        { "Name", "插入或更新单条数据" },        { "Qty", 200},        { "DDate", DateTime.Now }    };    var result= testdb.Upsert(dictable, dic1);    //** 批量插入或更新    var dic3 = new Dictionary<string, object>    {        { "ID", 3 },        { "Name", "批量插入或更新" },        { "Qty", 300},        { "DDATE", DateTime.Now }    };    List<Dictionary<string,object>> listdata=new List<Dictionary<string, object>> { dic3,dic1};    var listresult = testdb.Upsert(dictable, listdata); 

查询数据

   //查找id=2的数据    var databyid = testdb.FindByID<Dictionary<string, object>>(dictable,2);    //查找Qty>10的数据    var wheredata = testdb.Find<Dictionary<string, object>>(dictable, "Qty>10");    //sql语句查找的数据    string sqlcmd = $"select * from {dictable}";    var sqldata = testdb.Find<Dictionary<string, object>>(sqlcmd);    //分页查找的数据    var pagedata = testdb.GetPagingData<Dictionary<string, object>>(dictable, "Qty>10",pageindex:1,pagenumber:10); 

通用的CRUD之Sqlite

删除数据

   //**删除_id=3的数据    var result = testdb.Delete(dictable,3);    //**删除qty<30的数据    var wherresult = testdb.Delete(dictable, "Qty<30");    //**使用sql语句删除_id=30的数据    string sql = $"delete {dictable} where _id=30";    var sqlresult = testdb.Delete(sql); 

更多使用方法请移步到仓库 https://gitee.com/lzcode/db-crud


我的分享希望能给你带去帮助,您的打赏是我继续为您分享的动力。

通用的CRUD之Sqlite