自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 .net6 中实现邮件发送

先要开启邮箱的 SMTP 服务,获取授权码,在实现代码发送邮件中充当邮箱密码用。在邮箱的 设置 > 账号 > POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务中,把 SMTP 服务开启,获取授权码。

2025-04-07 20:48:24 282

原创 .net 6 + vue3中使用SignaIR实现双向通信功能

SignaIR 是一个可跨平台的开源库,让客户端与服务器的通信变得简单,它允许服务器实时推送数据到客户端,使得客户端能够及时地收到服务器的数据并呈现给用户。

2025-03-30 01:29:39 847

原创 SQL server中的事务与锁

这种方法一旦超过时间,语句取消,释放资源,但是当前报错事务,不会回滚,会造成数据错误,你需要在程序中捕获1222错误,用程序处理当前事务的逻辑,使数据正确。锁的分类可以从锁的模式和锁的颗粒度分为两大类,锁的模式定义了事务对资源的访问方式,而锁的颗粒度分类决定了锁的作用域范围大小。允许事务读取其它事务未提交的数据,可能会造成脏读,隔离级别最低,可以提高并发性能。理解:允许事务读取另一个事务修改了但还未提交的数据,如果被读取的事务出现回滚时,该事务就读取到了数据库中没有真正存在过的数据,造成了脏读。

2025-03-27 00:23:07 741

原创 在vue3中对原生Dialog封装弹窗

因为这种方法会有很多弊端,如弹窗的位置控制,弹窗后对页面控制问题和弹窗显示的层级的问题,尽管弹窗的显示层级 z-index 属性值设置的很大,但总可能会出现比这值更大的,所以不能确保弹窗一定会显示在最上层。dialog 在默认情况下是居中定位的,可以通过使用不同的显示方法控制弹窗的模态效果,且用于是处于页面最上层。使用 showModal 方法控制弹窗的显示,弹窗后,给页面加了有个蒙层,不能对页面进行操作,使用 tab 键也不会命中到页面。在默认情况下,dialog 是隐藏的,需要我们添加事件让它显示。

2025-03-25 00:52:07 350

原创 C#中状态机Stateless初使用

Stateless是一个轻量级、高性能的状态机库,可用在.net应用程序中实现状态流的变化,能够轻松地帮助我们实现状态转换的逻辑。状态机:"依照指定的状态流程图,根据当前执行的动作,将当前状态按照预定的条件变更到新的状态 "。状态机有4个要素,即现态、条件、动作、次态。其中,现态和条件是“因”, 动作和次态是“果”。现态 - 是指当前对象的状态条件 - 当一个条件满足时,当前对象会触发一个动作动作 - 条件满足之后,执行的动作次态 - 条件满足之后,当前对象的新状态。

2025-03-24 21:53:18 379

原创 如何提高代码的通用性(笔记)

如给一个集合对象,写一段以性别分组的代码,如果此时需要按照年龄进行分组,那么这段代码就不再适用,就得从新写一段以年龄分组的代码,那如果现在需求要以年龄和性别进行分组呢?又写一段以年龄和性别进行分组的代码吗?需求以年龄分组,或者以性别进行分组,或者以年龄 + 性别进行分组,再或者以跟多的字段进行分组。在这样的封装后,代码具有了一定的通用性,既能根据年龄进行分组,也能根据性别进行分组。但当需求复杂些就不满足需求了,如果需求以年龄和性别进行分组,或者更多字段进行分组,那么就不再适用了。要求以对象的年龄进行分组。

2025-03-22 17:40:29 328

原创 JavaScript中对对象(Object)的基础用法

今天看代码的时候,发现在js中对对象的一些基本使用还有欠缺,来补补基础写下这篇笔记。在 JavaScript 中,对象是一种无序的数据集合,它由键值对组成。下面是在js中对对象常见用法和方法的介绍。

2025-03-22 00:29:03 574

原创 .net 中使用JWT进行认证与授权

JWT(Json Web Token)是一种在网络上安全地传输信息的开方标准,常用于实现用户认证和授权。这三部分通过(.)符号连接在一起,组合成JWT。

2025-03-03 18:55:48 263

原创 在.net中,async/await的理解

在.net中,async 和 await 是两个关键字,async 关键字用于声明一个方法是异步方法,该方法可以包含一个或多个 await 表达式。await 关键字是用于在异步方法中等待一个任务(Task 或 Task<T>对象)的完成。在 async 方法中使用 await表达式时,会暂停当前方法的执行,直到等待的任务完成。在这段时间内,主线程可以去执行其它操作。什么是同步:当一个方法被调用时,调用者需要等待该方法执行完毕后才会继续往下执行,我们称这种方法为同步方法。

2025-03-02 23:54:28 1007

原创 .NET + Vue3 的前后端项目在IIS的发布

2)然后在 [高级设置] 中,把 [启用 32位应用程序] 的值设置成 [false],然后下滑,找到 [标识],将 [标识] 的值设置成 [LocalSystem]。网址部署好后,想测试网址的功能是否正常,发现网址的数据获取和新增功能都正常,但当修改和删除数据时,发现网址报405错误,这是什么原因造成的呢?这个错误是你项目文件夹中没有项目导致的,看看你的网址指向的物理路径是否正确,在指向的这个文件夹中是否有项目存在。3)在 IIS 的网站中,选择部署的项目,点击 [绑定] ,分别配置 IP 地址。

2025-02-17 14:16:12 1989 3

原创 在vue3中vue-cropper的初使用

在学习 Vue-Cropper 之前 先了解一下 Cropper,两者的关系与区别,避免在学习的时候踩坑和把它们搞混淆。Cropper 是一个基于JavaScript 的图像剪切库,它可以在多种现代浏览器中运行工作。它提供了丰富的配置选项和事件,使得用户可以轻松地图像上传、剪切、旋转、缩放等功能。Cropper的设计目标是提供简单、灵活和强大的图像处理功能。Cropper 的主要特性:1、支持多种图片格式,如JPEG、PNG、GIF等。2、提供多种剪切形状。3、支持图片旋转。

2025-02-13 17:04:56 1261

原创 vue3中组件之间的通信

如父组件向子组件的Props传递、子组件向父组件的emit的传递、组件之间的双向绑定v-model、vue的状态管理工具、事件总线、依赖住入以及间接传参(Vue Router)。以下将对父组件向子组件的Props传递、子组件向父组件的emit的传递、组件之间的双向绑定v-model 以及间接传参(Vue Router)的传参方式做简单介绍和使用示例。间接传参,是指如在页面跳转中,当定义了动态路由时,在路由的路径中可以包含参数,然后在目标页面中可以获取路由路径中的参数,以达到传递参数的效果。

2025-02-13 13:44:04 801

原创 vue3中,vue的响应式系统能检测到的几种数组的变动

2、使用 push()、pop()、shift()、unshift()、splice()、sort()、reverse() 这些方法引起的数组变动。vue3中,在改变使用 ref 声明的响应式数组时,vue 的响应式系统会检测跟踪到通过下面的方法改变数组变化,并更新页面。1、修改数组的长度:如 arr.value.length = 0;

2025-01-06 23:22:32 102

原创 (笔记)解决select下拉框默认选中selected属性不起作用问题

在 vue3 中使用 HTML原生开发,想给 select 下拉框选中 selected 属性不起作用。这是因为 vue3中使用了 Composition API(组合式 api),而 Composition API 中的响应式数据是独立的,不会自动更新到 DOM 中。可以使用 v-model 来绑定下拉框的值(这种方法我也试过了,没什么卵用,使用 :v-model 才行)。

2024-12-12 22:25:48 533

原创 (笔记)vue3使用Element Plus全局引入icons

如果你想要在项目中直接使用 Element Plus 的图标 icons,而不需要在每次使用的时候都要引入,那么你可以参考本文。

2024-12-03 17:18:44 1257

原创 (笔记)vue3引入Element-plus

在启动项目的时候,可能会有两个报错 AutoImport is not a function 和 Components is not a function,这是因为你的插件版本过高导致的,把版本设置低一点就好了。把 unplugin-auto-import 和 unplugin-vue-components 改成对应版本后保存,此时下载的插件版本还没有变,可以把对应的插件删了后重新下载。顾名思义,是根据你在项目中的使用情况,向项目中引入你使用的部分,所以在打包的时候内存比较小。如有不足之处,还请斧正。

2024-12-03 11:03:23 1521

原创 (笔记)解决System.InvalidOperationException:“The data is NULL at ordinal 1. This method ...的问题

今天做一个主子表查询的功能时,在测试接口的时候,发现有些数据能够正常执行并输出数据,但有些数据就会在 linq查询数据库的时候报这个错误。自己搞了两小时没有搞出来,然后去找人问,在大佬的帮助下终于找到了报这个错误的根源。错误及错误截图:错误原因:数据库中有个允许为 null 的字段为 null造成的。把允许为 null 的字段的值设置成 null,可能会引发异常而导致报错。

2024-12-02 13:07:03 362

原创 .net webAPI中HTTP请求的URL与请求参数(笔记)

在.net webAPI中,设计了一系列特性,来帮助我们正确地接收和解析客户端发送的数据。如和,用于指示控制器方法应如何从不同的请求源提取参数。本文将总结这几个属性的作用和用法、及相对应的 URL。

2024-11-19 23:27:06 640 1

原创 .net 7.0 解决“The keyword field is required”的问题

在 .net 3.1项目的时候,使用 keyword 做 API 接口的模糊匹配,能够传入keyword = “” 进行整表查询。但当我在 .net 7.0 项目中这么使用的时候,传入 keyword 不为空时能够进行匹配,但是当我传入 keyword = “” 的时候就报错 “The keyword field is required”。只需给参数的类型设置成可空就行了,操作如下。在网上找了解决办法:找到项目的属性>生成>常规>可为null类型,把可为null类型设置为启动。这个方法能解决问题。

2024-11-19 20:12:57 532

原创 git push时报错! [rejected] master -> master (fetch first)error: ...

错误描述:在我向远程仓库push代码时,即执行 git push origin master命令时发生的错误。在网上查了许多资料,是因为Git仓库中已经有一部分代码,它不允许你直接把你的代码覆盖上去。远程仓库和本地仓库存在差异。一般是因为你的README.md文件不在本地目中。这里的README.md文件是指MarkDown文件。然后重新 add、commit后,再次 push 一下就好了。先 pull一下,同步远程仓库和本地目录。

2024-11-17 14:12:53 565

原创 Element-plus中的表单验证

在使用自定义规则中,使用 v-model绑定自定义校验规则的字段。PS:自定义校验规则必须写在 rules 方法之前,因为这里声明的校验规则(函数)使用的是 const,而 const、let 是块级作用域,不能进行变量提升;var是函数级作用域,可以变量提升。PS:校验规则函数三个函数 rule, value, callback 中,虽然 rule 没有使用,但这里也不能去掉,因为它确定了 callback()是一个函数。不然会报错:callback is not a function。

2024-10-19 06:38:39 1234

原创 Swagger配置且添加小锁(asp.net)(笔记)

此博客是基于 asp.net core web api(.net core3.1)框架进行操作的。

2024-09-27 02:42:06 977

原创 使用Linq进行多表查询(C#)

创建一个学生 Student 模型创建一个成绩 sc模型创建一个课程 course模型创建一个 StudentScCourse模型,用于多表关联查询创建上下文 DbContext类。

2024-09-12 06:09:00 854 1

原创 存储过程

在开发应用程序时,为了便于修改和扩充,经常会将负责不同功能的语句集中起来,而且按照用途分别独立放置,以便能够返回调用,而这些独立放置且拥有不同功能的语句,就是 过程(Procedure)。存储过程 Procedure是一组为了完成特定功能的 SQL语句集合。经编译后存储在数据库中,用户通过指定存储过程名称和参数来执行存储过程。存储过程是一种独立存储在数据库内的对象,可以接受输入、输出参数,返回单个或多个结果集及返回值,由应用程序通过调用执行。

2024-07-26 02:56:40 1503 2

原创 视图

数据库是由数据库设计员,根据用户的所有需求,按照数据库设计规范设计的,但根据数据库设计规范设计的数据库并不一定符合用户的应用需求。而 SQL SERVER根据不同用户的应用需求,重新定义了表的数据结果,这种结构就是视图。数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图和查询所引用的表,并且在引用视图时动态产生。

2024-07-24 06:35:46 1264

原创 游标

当检索的数据只有一条记录时,所编写的事务语句代码往往使用 SELECT语句。但是常常会遇到这样的情况,当我们需要从某一结果集中逐一地读取一条记录,那么我们应该怎么办呢?游标(Cursor)为我们提供了一种极为优秀的解决方案。实际上,游标是一种能够从包括多条数据记录的结果集中每次提取一条记录的机制。本文主要是对服务器游标进行学习和记录。游标是处理数据的一种方法,它允许应用程序对查询语句 SELECT返回的结果集中的每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作。

2024-07-24 00:31:51 631

原创 SQL中的函数

函数是由一个或多个 T-SQL 语句组成的子程序,可用于封装代码以便重复使用。在 SQL SERVER 中,根据函数返回值类型,将不同自定义函数分为 标量函数、内嵌表值函数 和多语句表值函数。标量函数:返回一个确定类型的变量值,其返回值类型除了 TEXT、NTEXT、IMAGE、CURSOR、TIMESTAMP 和 TABLE 类型外的其它数据类型。函数体语句定义在 BEGIN···END 语句内。内嵌表值函数:返回值为一个表。内嵌表值函数没有由 BEGIN···END 语句括起来的函数体。

2024-07-23 02:40:33 1736 2

原创 流程控制语句

T-SQL 提供了用于编写过程性代码的语法结构,可用来进行顺序、分支、循环、存储过程等程序设计,编写结构化的模块代码,从而提高编程语言的处理能力。流程控制语句控制语句说明控制语句说明SET赋值语句CONTINUE重新开始下一次循环BEGIN···END定义语句块BREAK退出循环IF···ELSE条件语句GOTO无条件转移语句CASE分支语句RETURN无条件推出语句WHILE循环语句。

2024-07-22 22:54:44 778

原创 T-SQL编程基础

T-SQL 提供称为流程控制的特殊关键字,用于控制 T-SQL 语句、语句块 和存储过程的执行流。在数据库开发过程中,函数和游标起着很重要的作用,函数是由一个或多个 T-SQL 语句组成的子程序,可用于封装代码以便重复使用;游标是一种能从包含多条数据记录的结果集中每次提取一条记录的机制。

2024-07-22 04:33:37 638

原创 在数据操作中使用SELECT子句

- 示例:创建一个成绩表副本(#TempOrder)表,将 sc表中成绩大于等于80分的数据添加到该表中,并查询里面的内容。-- condition_expression:包含 SELECT子句,SELECT子句要写在圆括号中。在 DELETE 语句中使用 SELECT子句中,可以将子查询的结果作为删除数据的条件。-- 示例:将学号为 201602001号学生选修的操作系统的成绩改为86。-- 示例:将2016级计算机专业王一选修的 C001号课程的成绩改为92。

2024-07-22 02:38:12 1099

原创 其他查询

联合查询是指将两个或两个以上的 SELECT 语句通过 UNION 运算符连接起来的查询,联合查询可以将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中所有查询的全部行。-- 示例:将查询的学生姓名、学号、课程名、成绩的相关数据存放在成绩单表中,并对新表进行查询。使用 UNION 组合两个查询的结果集的两个基本规则是:所有查询中的列数和列的顺序必须相同;-- 示例:查询学生的成绩和学号,并按照成绩进行降序排序,如果成绩相同,则按学号升序排序。-- ASC 表示升序;

2024-07-22 01:52:11 571

原创 ANY、ALL 和 SOME关键字的用法

sql

2024-07-21 23:48:30 672

原创 子查询

SELECT 语句可以嵌套在其它语句中,这些语句包括 SELECT、INSERT、UPDATE 及DELETE 等。这些嵌套的 SELECT语句被称为子查询。当一个查询依赖于另外一个查询结果时,可以使用子查询,一般为查询条件不确定的情况。

2024-07-21 23:27:10 624

原创 连接查询

在实际开发中,经常需要同时从两个表或多个表中检索数据,并且每一个表中的数据往往作为一个单独的列出现在结果集中。在表连接技术中,可分为内连接、外连接 和交叉连接等。

2024-07-21 19:01:35 1090

原创 分组查询

前言使用聚合函数返回的是所有行数据的统计结果,如果需要按某一列数据的值进行分类,在分类的基础上再进行查询,就要使用 GROUP BY 子句。分组技术就是指,使用 GROUP BY子句完成分组操作的技术。-- 语法结构-- ALL:包含所有分组结果,甚至包含那些不满足 WHERE子句指定搜索条件的组和结果。如果指定了 ALL,组中不满足搜索条件的空值也将作为一个组。-- group_by_expression:执行分组的表达式,可以是列或引用列的非聚合表达式。

2024-07-21 16:28:13 753

原创 SQL 简单查询

一、投影查询-- 投影查询-- ALL:指定返回所有记录,也包括重复行,默认设置。面向的是表中的数据(行)。-- DISTINCT:指定显示所有记录,但不包括重复行。-- TOP n [ PERCENT ]:指定从查询结果中返回前 n行,或前 n%行。--:表示所有列。-- column_name:指定要返回的列名。-- expression:是列名、常量、函数以及由运算符连接的列名、常量和函数的任意组合,或者是子查询。

2024-07-21 04:28:15 3783

原创 SELECT 查询

在 SQL中,可以使用 SELECT语句进行数据的查询,从数据库表中检索出所匹配的数据。

2024-07-21 01:38:22 541

原创 表的基本操作

本文主要以SQL语句的方式,介绍表的基本操作,包括表的创建、修改和删除,表中的数据插入和删除操作等。注:表必须建在数据库中,不能单独存在,也不能以操作系统文件的形式存在。

2024-07-20 22:27:22 743

原创 SQL 约束

语法:alter table <表名> add constraint <约束名> foreign key (外键字段) references <关联的表名> (关联字段)语法:alter table <表名> add constraint <约束名> check(成绩 >=0 and 成绩 <= 100)语法:alter table <表名> add constraint <约束名> primary key (字段名)

2024-07-20 17:38:25 902

原创 数据库表的创建

年龄 int check (年龄 >= 0 and 年龄 <= 100), -- 设置字段取值范围:check。用户id int primary key, -- 设置字段为主键:primary key。用户密码 varchar(50) not null, -- 不能为空:not null。用户名 varchar(200) unique, -- 设置字段具有唯一性:nuique。--在临时数据库 test中添加用户表 users.

2024-07-20 17:33:46 234

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除