通用的CRUD之Sqlite

这篇具有很好参考价值的文章主要介绍了通用的CRUD之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文章来源地址https://www.toymoban.com/news/detail-450739.html

到了这里,关于通用的CRUD之Sqlite的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一种轻量级日志采集解决方案

    前言 目前各大公司生产部署很多都是采用的集群+微服务的部署方式,如果让日志散落在各个主机上,查询起来会非常的困难,所以目前我了解到的都是采用的日志中心来统一收集管控日志,日志中心的实现方案大多基于ELK(即Elasticsearch、Logstash和Kibana三个开源软件的缩写),

    2024年02月07日
    浏览(77)
  • Thonny-适合初学者小白的开箱即用的轻量级 Python IDE

    如果你是一位Python初学者小白,那最适合Thonny它了,如果不是初学者,请选择PyDev和Pycharm。 Thonny是一款面向初学者小白的轻量级 IDE,可以让初学者更好更快的入门上手 Python,而不致于在环境上浪费过多的时间。 取之 Python,用之Python,Thonny 是基于 Python 内置图形库 tkinter开发

    2024年02月16日
    浏览(20)
  • Python3操作SQLite3创建表主键自增长|CRUD基本操作

    Win11查看安装的Python路径及安装的库 Python PEP8 代码规范常见问题及解决方案 Python3操作MySQL8.XX创建表|CRUD基本操作 Python3操作SQLite3创建表主键自增长|CRUD基本操作 anaconda3最新版安装|使用详情|Error: Please select a valid Python interpreter Python函数绘图与高等代数互融实例(一):正弦函数与

    2024年02月07日
    浏览(17)
  • YOLOv5/v7 应用轻量级通用上采样算子CARAFE

    特征上采样是现代卷积神经网络架构中的关键操作,例如特征金字塔。其设计对于密集预测任务,如目标检测和语义/实例分割至关重要。在本研究中,我们提出了一种称为内容感知特征重组(CARAFE)的通用、轻量级且高效的操作符,以实现这一目标。CARAFE具有以下几个优点:

    2024年02月08日
    浏览(20)
  • 英文论文(sci)解读复现【NO.21】一种基于空间坐标的轻量级目标检测器无人机航空图像的自注意

    此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文 ,并对相应的SCI期刊进行介绍,帮助大家解

    2024年02月19日
    浏览(24)
  • 一种基于YOLO改进的高效且轻量级的表面缺陷检测网络, NEU-DET和GC10-DET涨点明显

    💡💡💡 本文摘要: 一种基于YOLO改进的高效且轻量级的表面缺陷检测, 在NEU-DET和GC10-DET任务中涨点明显 目录 1.轻量且高效的YOLO 1.1 SCRB介绍 1.1.1 ScConv介绍  1.2 GSConvns  1.3 od_mobilenetv2_050 1.4  对应yaml 2.实验结果 3.源码获取 轻量且高效的YOLO网络结构  其实ScConv和Bottleneck的基

    2024年01月19日
    浏览(19)
  • 改进YOLOv8 | 特征融合篇 | YOLOv8 应用轻量级通用上采样算子CARAFE | 《特征的内容感知重组》

    特征上采样是现代卷积神经网络架构中的关键操作,例如特征金字塔。其设计对于密集预测任务,如目标检测和语义/实例分割至关重要。在本研究中,我们提出了一种称为内容感知特征重组(CARAFE)的通用、轻量级且高效的操作符,以实现这一目标。CARAFE具有以下几个优点:

    2024年02月07日
    浏览(26)
  • 轻量灵动: 革新轻量级服务开发

    从 JDK 8 升级到 JDK 17 可以让你的应用程序受益于新的功能、性能改进和安全增强。下面是一些 JDK 8 升级到 JDK 17 的最佳实战: 1.1、确定升级的必要性:首先,你需要评估你的应用程序是否需要升级到 JDK 17。查看 JDK 17 的新特性、改进和修复的 bug,以确定它们对你的应用程序

    2024年02月07日
    浏览(26)
  • SQLite Studio 连接 SQLite数据库

    1.1、按WIN+R,打开控制台,然后把指引到我们的SQLite的安装路径,输入D:,切换到D盘,cd 地址,切换到具体文件夹,输入“sqlite3”,启动服务 1.2、创建数据库和表  id和name是表的属性(列名),int和varchar是列名的数据类型,int表示是整型,varchar表示是字符串,长度是20,p

    2024年02月15日
    浏览(25)
  • git轻量级服务器gogs、gitea,非轻量级gitbucket

    本文来源:git轻量级服务器gogs、gitea,非轻量级gitbucket, 或 gitcode/gogs,gitea.md 结论: gogs、gitea很相似 确实轻, gitbucket基于java 不轻, 这三者都不支持组织树(嵌套组织 nested group) 只能一层组织。 个人用,基于gogs、gitea,两层结构树 简易办法: 把用户当成第一层节点、该用户的

    2024年02月07日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包