WPF 手撸插件 八 操作数据库一
1、本文将使用SqlSugar创建Sqlite数据库,进行入门的增删改查等操作。擦,咋写着写着凌乱起来了。
SqlSugar官方文档:简单示例,1分钟入门 - SqlSugar 5x - .NET果糖网
2、环境SqlSugar V5.0版本需要.Net Framework 4.6 ,NuGet添加内容如下,安装红框中的内容就可以了。这里的数据库demo.db是自动创建的。
3、运行效果如下图 。
4、整体代码如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;namespace ConsoleAppSqlSugar
{class Program{static void Main(string[] args){Console.WriteLine("启动");// 创建数据库对象SqlSugarClient Db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "datasource=demo.db",DbType = DbType.Sqlite,IsAutoCloseConnection = true}, db =>{db.Aop.OnLogExecuting = (sql, pars) =>{//获取原生SQL推荐 5.1.4.63 性能OKConsole.WriteLine(UtilMethods.GetNativeSql(sql,pars));//获取无参数化 SQL 对性能有影响,特别大的SQL参数多的,调试使用//Console.WriteLine(UtilMethods.GetSqlString(DbType.Sqlite,sql,pars));};//注意多租户 有几个设置几个//db.GetConnection(5).Aop;});bool isExit = true;while (isExit){Console.WriteLine("请输入:");Console.WriteLine("1、创建数据库。");Console.WriteLine("2、创建数据表。");Console.WriteLine("3、查询表的所有。");Console.WriteLine("4、插入数据。");Console.WriteLine("5、更新数据。");Console.WriteLine("6、删除数据。");Console.WriteLine("7、退出");int result;if (int.TryParse(Console.ReadLine(),out result)){switch (result){case 1:Db.DbMaintenance.CreateDatabase();//达梦和Oracle不支持建库break;case 2:Db.CodeFirst.InitTables<ToDos>();//所有库都支持break;case 3://查询表的所有var list = Db.Queryable<ToDos>().ToList();foreach (ToDos item in list){Console.WriteLine("ToDoName:"+item.ToDoName+" "+ "ToDoDescription:" + item.ToDoDescription);}break;case 4://插入int num1=Db.Insertable(new ToDos() { ToDoName = "任务名称", ToDoDescription = "任务描述" }).ExecuteCommand();if (num1>0){Console.WriteLine("插入数据成功");}break;case 5://更新int num2 = Db.Updateable(new ToDos() { Id = 1, ToDoName = "任务名称更新", ToDoDescription = "任务描述更新" }).ExecuteCommand();if (num2 > 0){Console.WriteLine("更新数据成功");}break;case 6://删除int num3 = Db.Deleteable<ToDos>().Where(it => it.Id == 1).ExecuteCommand();if (num3 > 0){Console.WriteLine("删除数据成功");}break;case 7:isExit = false;break;default:isExit = false;break;}}}Console.WriteLine("输入回车退出程序。");Console.ReadLine();}}
}
5、简单的仓储,其实官网也有很合的仓储示例。仓储简单类代码如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;namespace ConsoleAppSqlSugar
{//定义一个泛型仓储类,继承自SimpleClient<T>,T是一个类的泛型参数public class SqlSugarRepository<T>:SimpleClient<T> where T:class,new(){//构造函数public SqlSugarRepository(){//创建SqlSugarClient实例,用于数据库操作。var db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "datasource=demo.db",DbType = DbType.Sqlite,IsAutoCloseConnection = true});//将创建的SqlSugarClient实例复制给继承自SimlpeClient<T>的Context属性base.Context = db;//配置AOP拦截器,在SQL语句执行前输出SQL语句控制器db.Aop.OnLogExecuting = (sql, pars) =>{Console.WriteLine(sql); //控制台输出执行的SQL语句};}}
}
调用代码如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;namespace ConsoleAppSqlSugar
{class Program{static void Main(string[] args){Console.WriteLine("启动");// 创建数据库对象//SqlSugarClient Db = new SqlSugarClient(new ConnectionConfig()//{// ConnectionString = "datasource=demo.db",// DbType = DbType.Sqlite,// IsAutoCloseConnection = true//}, db =>//{// db.Aop.OnLogExecuting = (sql, pars) =>// {// //获取原生SQL推荐 5.1.4.63 性能OK// Console.WriteLine(UtilMethods.GetNativeSql(sql,pars));// //获取无参数化 SQL 对性能有影响,特别大的SQL参数多的,调试使用// //Console.WriteLine(UtilMethods.GetSqlString(DbType.Sqlite,sql,pars));// };// //注意多租户 有几个设置几个// //db.GetConnection(5).Aop;//});//创建ToDos类型的仓储实例。var toDosRepository = new SqlSugarRepository<ToDos>();bool isExit = true;while (isExit){Console.WriteLine("请输入:");Console.WriteLine("1、创建数据库。");Console.WriteLine("2、创建数据表。");Console.WriteLine("3、查询表的所有。");Console.WriteLine("4、插入数据。");Console.WriteLine("5、更新数据。");Console.WriteLine("6、删除数据。");Console.WriteLine("7、退出");int result;if (int.TryParse(Console.ReadLine(),out result)){switch (result){case 1://Db.DbMaintenance.CreateDatabase();//达梦和Oracle不支持建库toDosRepository.Context.DbMaintenance.CreateDatabase();break;case 2://Db.CodeFirst.InitTables<ToDos>();//所有库都支持toDosRepository.Context.CodeFirst.InitTables<ToDos>();//所有库都支持break;case 3://查询表的所有//var list = Db.Queryable<ToDos>().ToList();var list = toDosRepository.Context.Queryable<ToDos>().ToList();foreach (ToDos item in list){Console.WriteLine("ToDoName:"+item.ToDoName+" "+ "ToDoDescription:" + item.ToDoDescription);}break;case 4://插入//int num1=Db.Insertable(new ToDos() { ToDoName = "任务名称", ToDoDescription = "任务描述" }).ExecuteCommand();int num1 = toDosRepository.Context.Insertable(new ToDos() { ToDoName = "任务名称", ToDoDescription = "任务描述" }).ExecuteCommand();if (num1>0){Console.WriteLine("插入数据成功");}break;case 5://更新//int num2 = Db.Updateable(new ToDos() { Id = 1, ToDoName = "任务名称更新", ToDoDescription = "任务描述更新" }).ExecuteCommand();int num2 = toDosRepository.Context.Updateable(new ToDos() { Id = 1, ToDoName = "任务名称更新", ToDoDescription = "任务描述更新" }).ExecuteCommand();if (num2 > 0){Console.WriteLine("更新数据成功");}break;case 6://删除//int num3 = Db.Deleteable<ToDos>().Where(it => it.Id == 1).ExecuteCommand();int num3 = toDosRepository.Context.Deleteable<ToDos>().Where(it => it.Id == 1).ExecuteCommand();if (num3 > 0){Console.WriteLine("删除数据成功");}break;case 7:isExit = false;break;default:isExit = false;break;}}}Console.WriteLine("输入回车退出程序。");Console.ReadLine();}}
}
相关文章:

WPF 手撸插件 八 操作数据库一
1、本文将使用SqlSugar创建Sqlite数据库,进行入门的增删改查等操作。擦,咋写着写着凌乱起来了。 SqlSugar官方文档:简单示例,1分钟入门 - SqlSugar 5x - .NET果糖网 2、环境SqlSugar V5.0版本需要.Net Framework 4.6 ࿰…...

代数结构基础 - 离散数学系列(八)
目录 1. 群(Group) 群的定义 群的示例 2. 环(Ring) 环的定义 环的示例 3. 域(Field) 域的定义 域的示例 域在密码学中的应用 4. 实际应用场景 1. 对称性与加密 2. 误差检测与纠正 3. 数据编码…...
函数的arguments为什么不是数组?如何转化为数组?
因为arguments本身并不能调用数组方法,它是一个另外一种对象类型,只不过属性从0开始排,依次为0 1 2…最后还有callee和length属性,我们也把这样的对象成为类数组。 常见的类数组还有: 1.用getElementsByTagName/Class…...

Java之反射
目录 反射 定义 主要用途 反射相关的类 Class类中【获得类相关方法】 Class类中【获得类中属性相关的方法】 Class类中【获得类中注解相关的方法】 Class类中【获得类中构造器相关的方法】 Class类中【获得类中方法相关的方法】 获得Class对象 代码示例1 代码示例…...

3dsMax添加天空盒
点击渲染,环境 , 点击位图 找到要设置的天空HDR,可以使用HDR(EXR)贴图 一个可以下载HDR贴图的网站 https://polyhaven.com/hdris在渲染的时候不要使用使用微软输入法,3dsmax会卡死, 在渲染的时候不要使用使用微软…...

C语言的类型提升机制
概念 在C语言中,整数类型按照其大小可以分为以下几类(从小到大): charshortintlonglong long 当在表达式中涉及这些类型的混合运算时,较小的类型会被提升为较大的类型。具体规则如下: ①char 和 short …...

Pandas和Seaborn数据可视化
Pandas数据可视化 学习目标 本章内容不需要理解和记忆,重在【查表】! 知道数据可视化的重要性和必要性知道如何使用Matplotlib的常用图表API能够找到Seaborn的绘图API 1 Pandas数据可视化 一图胜千言,人是一个视觉敏感的动物,大…...
爬虫(Python版本)
1.爬虫的法律问题 爬虫技术(Web Scraping)指通过程序自动访问网页并提取其中的数据。在使用爬虫的过程中,涉及到一些法律法规和合规性问题。 常见法律风险 ①未经授权的访问:很多网站对爬虫行为设置了限制。如果未获得授权就进行…...
【分布式训练 debug】VS Code Debug 技巧:launch.json实用参数
VS Code Debug技巧:launch.json实用参数 在使用Visual Studio Code (VS Code)进行调试时,launch.json文件是一个强大的工具,它允许你自定义调试会话。以下是一些实用的参数,可以帮助你更有效地调试Python代码。 1. 调试第三方库…...
pycharm连接linux服务器需要提前安装ssh服务
在 Debian 或 Ubuntu 系统上,使用 APT: bash复制代码 sudo apt-get install openssh-server 在基于 RPM 的系统如 CentOS 或 RHEL 上,使用 YUM 或 DNF: bash复制代码 sudo yum install openssh-server 或对于较新的 RHEL/Cent…...

通信工程学习:什么是LAN局域网、MAN城域网、WAN广域网
LAN局域网、MAN城域网、WAN广域网 LAN(Local Area Network,局域网)、MAN(Metropolitan Area Network,城域网)和WAN(Wide Area Network,广域网)是计算机网络中根据覆盖范围…...
LeetCode热题100速通
一丶哈希 1、两数之和(简单) 给定一个整数数组 n u m s nums nums 和一个整数目标值 t a r g e t target target,请你在该数组中找出 和为目标值 t a r g e t target target 的那 两个 整数,并返回它们的数组下标。 你可以假设…...
Python代码编写KDJ指标
KDJ指标由三部分组成:K值、D值、J值,主要用于分析股票市场的超买超卖状态及股价波动的趋势。博主记录学习编写KDJ指标线 import numpy as npdef calculate_kdj(close_prices, n9, m13, m23):"""计算KDJ指标:param close_prices: 收盘价序…...

传统少数民族物品检测系统源码分享
传统少数民族物品检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…...
深度学习中的迁移学习:预训练模型微调与实践
深度学习中的迁移学习:预训练模型微调与实践 目录 💡 迁移学习的核心概念🧠 预训练模型的使用:ResNet与VGG的微调🏥 迁移学习在医学图像分析中的应用🔄 实践中的迁移学习微调过程 1. 💡 迁移学…...

原生input实现时间选择器用法
2024.10.08今天我学习了如何用原生的input,实现时间选择器用法,效果如下: 代码如下: <div><input id"yf_start" type"text"> </div><script>$(#yf_start).datepicker({language: zh…...
对象的概念
对象是编程中一个重要的概念,尤其在面向对象编程(OOP)中更为核心。简单来说,对象是一种数据结构,它可以存储相关的数据和功能。以下是关于对象的详细描述: 1. 对象的定义 对象是属性(数据&…...

ARIMA|基于自回归差分移动平均模型时间序列预测
目录 一、基本内容介绍: 二、实际运行效果: 三、原理介绍: 四、完整程序下载: 一、基本内容介绍: 本代码基于Matlab平台,通过ARIMA模型对时间序列数据进行预测。程序以通过调试,解压后打开…...

sqli-labs靶场第三关less-3
sqli-labs靶场第三关less-3 1、确定注入点 http://192.168.128.3/sq/Less-3/?id1 http://192.168.128.3/sq/Less-3/?id2 有不同回显,判断可能存在注入, 2、判断注入类型 输入 http://192.168.128.3/sq/Less-3/?id1 and 11 http://192.168.128.3/sq/L…...

泡沫背后:人工智能的虚幻与现实
人工智能的盛世与泡沫 现今,人工智能热潮席卷科技行业,投资者、创业者和用户都被其光环吸引。然而,深入探讨这种现象,人工智能的泡沫正在形成,乃至具备崩溃的潜质。我们看到的,无非是一场由资本推动的狂欢…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...