当前位置: 首页 > news >正文

dotNet 之数据库sqlite

Sqlite3是个特别好的本地数据库,体积小,无需安装,是写小控制台程序最佳数据库。NET Core是同样也是.NET 未来的方向。

**硬件支持型号  点击 查看 硬件支持 详情**

DTU701 产品详情

DTU702 产品详情

DTU801 产品详情

DTU802 产品详情

DTU902 产品详情

G5501 产品详情

ARM dotnet 编程

 

创建C#控制台应用(具有.NET6),项目命令sqlite。

Nuget安装

  • Microsoft.EntityFrameworkCore.Sqlite

  • Microsoft.EntityFrameworkCore.Sqlite.Core

  • Newtonsoft.Json

EF:ORM操作框架,但不包括数据库基本操作(我感觉默认自带sql server数据库操作) Sqlite:Sqlite数据库操作,EF接管

ORM解释 ORM,又称对象关系数据库。 在ORM里面认为,我们操作的对象属性和数据库里面的列的定义是对应的。 比如一个Student类,有id,name,age,sex等属性,那么我们C#程序中的类也有id,name,age,sex等属性。 而且我的类名和你的表名完全一致,我的数据类型和你的数据库也有对应关系 例如C#的string在数据库里面有varchar(50),varchar(max),nchar(10)等

sqlite上 添加->新建文件夹DB

DB 添加->类 ORMContext

ORMContext是数据库的上下文。

ORMContext.cc 中的内容如下:

namespace sqlite.DB
{//继承DbContext,让EF接管  ,ORMContext数据库上下文public class ORMContext : DbContext{public DbSet<Student> Students { get; set; }protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){//base.OnConfiguring(optionsBuilder);//数据库连接字符串optionsBuilder.UseSqlite("Data Source=blogging.db");}}public class Student{//主键[Key]// 自动递增[DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; }public string Name { get; set; }public int Age { get; set; }public string Sex { get; set; }}
}

Program.cs中 我们 对数据库 进行创建、保存、查、排序、增、删、改等操作,程序如下:

ORMContext _ORMContext = new ORMContext();
//如果没有数据库,则自动创建
_ORMContext.Database.EnsureCreated();
var i = 0;
for (i = 0; i < 10; i++)
{_ORMContext.Students.Add(new Student(){Name = "小李" + i,Age = i,Sex = "女"});
}
//保存数据库更新
_ORMContext.SaveChanges();
​
//系列化打印数据
//var res = _ORMContext.Students.Where(t => t.Sex == "女").ToList();
//Console.WriteLine(JsonConvert.SerializeObject(res));
​
Console.WriteLine("所有:");
var res = _ORMContext.Students.Where(t => true).ToList();
res.ForEach(t => {Console.WriteLine("Name:"+t.Name+" Age:"+t.Age+" Sex:"+t.Sex);
​
});
Console.WriteLine();
​
/*查*/
​
Console.WriteLine("查List:");
//var ListRes = _ORMContext.数据表.Where(t => 判断条件).ToList();
var ListRes = _ORMContext.Students.Where(t => t.Name == "小李1").ToList();
Console.WriteLine(JsonConvert.SerializeObject(ListRes));
​
Console.WriteLine("查第一个,如果没有则返回null:");
var res1 = _ORMContext.Students.Where(t => t.Name == "小李1").FirstOrDefault();
Console.WriteLine(JsonConvert.SerializeObject(res1));
//排序
//OrderBy: 升序
//OrderByDescending:降序
Console.WriteLine("排序:");
var res2 = _ORMContext.Students.Where(t=>t.Name == "小李1").OrderByDescending(t => t.Id).ToList();
Console.WriteLine(JsonConvert.SerializeObject(res2));
​
/*增,删,改由于ORM是对象数据模型,所以所有的数据操作都是对一个完整的对象进行操作。
EF具有缓存追踪的设置,如果你查询出来的数据进行了修改,然后保存缓存的话,就会同步更新。
​*/
// 增
_ORMContext.Students.Add(new Student
{Name = "小李",Age = i,Sex = "男"
});
_ORMContext.SaveChanges();//保存缓存操作
​
// 改
var res3 = _ORMContext.Students.Where(t => t.Age == 0).ToList();
//将所有年龄为0的人的名字改成"修改名称"
res3.ForEach(item => {item.Name = "修改名称";
});
​
_ORMContext.SaveChanges();//保存缓存操作
​
// 删
//删除所有年龄小于5岁的人
Console.WriteLine("删除所有年龄小于5岁的人");
var res4 = _ORMContext.Students.Where(t => true).ToList();
​
res4.ForEach(t => {if (t.Age < 5){_ORMContext.Students.Remove(t);}
});
​
_ORMContext.SaveChanges();//保存缓存操作
​
​
Console.WriteLine("剩余的名字:");
var res5 = _ORMContext.Students.Where(t => true).ToList();
res5.ForEach(t => {Console.WriteLine(t.Name);});
​
//sql语句执行
//sql查询
//实体查询
//var res5 = _ORMContext.Database.SqlQuery<Student>("Select * from Students").ToList();
​
///sql执行/增删改
//_ORMContext.Database.ExecuteSqlCommand("update Students set sex = '女' where age = 6");
​
Console.WriteLine("Hello, World!");
Console.ReadLine();

执行结果如下:

 

相关文章:

dotNet 之数据库sqlite

Sqlite3是个特别好的本地数据库&#xff0c;体积小&#xff0c;无需安装&#xff0c;是写小控制台程序最佳数据库。NET Core是同样也是.NET 未来的方向。 **硬件支持型号 点击 查看 硬件支持 详情** DTU701 产品详情 DTU702 产品详情 DTU801 产品详情 DTU802 产品详情 D…...

走近ChatGPT与类似产品:原理解析与比较

目录 1. 引言1.1 技术的进步与自然语言处理1.2 ChatGPT的崭新概念 2. ChatGPT: 一览众山小2.1 GPT-3.5架构简介2.2 ChatGPT的学习与训练2.3 文本生成的工作原理 3. 市场上类似产品调研3.1 对话式人工智能产品分类3.2 文心一言3.3 讯飞星火 4. 应用前景与局限性展望4.1 ChatGPT的…...

HarmonyOS SDK开放能力,服务鸿蒙生态建设,打造优质应用体验

华为开发者大会2023&#xff08;HDC.Together&#xff09;于8月4日至6日在东莞松山湖举行&#xff0c;在HarmonyOS端云开放能力技术分论坛上&#xff0c;华为为广大开发者们介绍了HarmonyOS SDK开放能力在基础开发架构、功能特性等方面的变化之处&#xff0c;通过将常见的通用能…...

数字经济对产业结构升级和创业增长的影响(2011-2021年)

参照刘翠花&#xff08;2022&#xff09;的做法&#xff0c;对来自中国人口科学《数字经济对产业结构升级和创业增长的影响》一文中的基准回归部分进行复刻。文章从理论层面分析数字经济发展对产业结构升级、创业增长的影响及其机理&#xff0c;并利用2011-2021年中国省级面板数…...

GPT-4助力数据分析:提升效率与洞察力的未来关键技术 | 京东云技术团队

摘要 随着大数据时代的到来&#xff0c;数据分析已经成为企业和组织的核心竞争力。然而&#xff0c;传统的数据分析方法往往无法满足日益增长的数据分析需求的数量和复杂性。在这种背景下&#xff0c;ChatGPT-4作为一种先进的自然语言处理技术&#xff0c;为数据分析带来了革命…...

Zabbix6 对接飞书告警

文章目录 Zabbix对接飞书告警背景创建飞书群组Zabbix配置创建告警媒介类型创建动作用户关联飞书告警 Zabbix对接飞书告警 背景 运维 你看下他的进程是不是挂了&#xff0c;之前在9点28分有发消息的&#xff0c;这次没有发消息 哐哐哐的去看了一通&#xff0c;确实有个进程之前…...

Javascript异步编程的4种方法

你可能知道&#xff0c;Javascript语言的执行环境是"单线程"&#xff08;single thread&#xff09;。 所谓"单线程"&#xff0c;就是指一次只能完成一件任务。如果有多个任务&#xff0c;就必须排队&#xff0c;前面一个任务完成&#xff0c;再执行后面一…...

【MySQL】表的内外连接

目录 一、内连接 二、外连接 1、左外连接 2、右外连接 一、内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选&#xff0c;我们前面学习的查询都是内连接&#xff0c;也是在开发过程中使用的最多的连接查询。 语法&#xff1a; select 字段 from 表1 i…...

详解Mysql——第一篇/连接查询

mysql的连接查询&#xff0c;相必在网上都能找到很多的教程&#xff0c;博主今天不做老话常谈&#xff0c;不走重复路线 1.建表 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id) – –课程编…...

uniapp获取屏幕宽度时 获取不到移动设备中内容盒子宽度

首先 &#xff1a;我使用的是uniapp vue3语法&#xff1a; 问题&#xff1a; 我出现这个问题是IOS 设备发现的&#xff0c;data.boxWidth为0 代码&#xff1a; const initCreated () > {const query uni.createSelectorQuery().in(instance.proxy);const el query.select…...

篇十二:代理模式:控制对象访问

篇十二&#xff1a;“代理模式&#xff1a;控制对象访问” 开始本篇文章之前先推荐一个好用的学习工具&#xff0c;AIRIght&#xff0c;借助于AI助手工具&#xff0c;学习事半功倍。欢迎访问&#xff1a;http://airight.fun/。 另外有2本不错的关于设计模式的资料&#xff0c…...

P1657 选书

1&#xff1a;思路&#xff1a;一看数据&#xff0c;嗯....!,爆搜嘛&#xff1f;&#xff0c;看一眼题目&#xff0c;嗯&#xff01;&#xff01;&#xff01;&#xff0c;爆搜&#xff01; 配上俺的无敌小剪枝&#xff0c;按下拿下&#xff01; 2&#xff1a;暴力枚举每个人获…...

代码随想录第46天 | 139. 单词拆分、多重背包

139. 单词拆分 确定dp数组以及下标的含义 dp[i] : 字符串长度为i的话&#xff0c;dp[i]为true&#xff0c;表示可以拆分为一个或多个在字典中出现的单词。 确定递推公式 如果确定dp[j] 是true&#xff0c;且 [j, i] 这个区间的子串出现在字典里&#xff0c;那么dp[i]一定是tru…...

Unreal View Model结合GAS使用

这个东西真的难用&#xff0c;各种问题&#xff0c;记录下 官方文档 bilibili教学 开启插件 插件开启 Viewmodel&#xff1a; build.cs内PublicDependencyModuleNames加上ModelViewViewModel 创建ViewModel类 #pragma once#include "CoreMinimal.h" #include &quo…...

Spring-Cloud-Loadblancer详细分析_2

LoadBalancerClients 终于分析到了此注解的作用&#xff0c;它是实现不同服务之间的配置隔离的关键 Configuration(proxyBeanMethods false) Retention(RetentionPolicy.RUNTIME) Target({ ElementType.TYPE }) Documented Import(LoadBalancerClientConfigurationRegistrar…...

uniapp 左右滑动切换页面并切换tab

实现效果如图 要实现底部内部的左右滑动切换带动上方tab栏的切换&#xff0c;并且下方内容要实现纵向滚动 &#xff0c;所以需要swiper&#xff0c;swiper-item,scroll-view组合使用 tab栏部分 <view class"tabs"><view class"tab_item" v-for&…...

FinClip 支持小程序维度域名配置;桌面端体验活动进行中

FinClip 的使命是使您&#xff08;业务专家和开发人员&#xff09;能够通过小程序解决关键业务流程挑战&#xff0c;并完成数字化转型的相关操作。不妨让我们看看在本月的产品与市场发布亮点&#xff0c;看看是否有助于您实现目标。 产品方面的相关动向&#x1f447;&#x1f…...

已有公司将ChatGPT集成到客服中心以增强用户体验

Ozonetel正在利用ChatGPT来改善客户体验。该公司表示&#xff0c;他们通过使用ChatGPT收集与客户互动过程收集的“语料”能够更有针对性地提高服务效率&#xff0c;提供个性化的用户体验&#xff0c;并实现更高的客户满意度。[1] 通过这套解决方案&#xff0c;客服中心将拥有一…...

108. 将有序数组转换为二叉搜索树

文章目录 题目描述思路解答&#xff08;c&#xff09;结果 题目描述 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二…...

视频分辨率: UXGA/SVGA/VGA/QVGA/QQVGA

视频分辨率除了常见的720p/2K/4K外, 还有VGA系列的分辨率 相关字段含义: V——Video &#xff08;视频&#xff09; G——Graphics&#xff08;图像&#xff09; A——Array&#xff08;阵列&#xff09; S——Super(超级) X——Extended(扩展) U——Ultra(终极) W——Wide&am…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...

【iOS】 Block再学习

iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…...

嵌入式面试常问问题

以下内容面向嵌入式/系统方向的初学者与面试备考者,全面梳理了以下几大板块,并在每个板块末尾列出常见的面试问答思路,帮助你既能夯实基础,又能应对面试挑战。 一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责…...