自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(159)
  • 资源 (5)
  • 收藏
  • 关注

原创 WINFORM打开窗体,设置窗体在右下角,为什么设置了Location位置无反应。

需要在Location设置前,将StartPosition设置为Manual即可。

2024-02-20 15:34:25 468

转载 ASP.Net WebAPI HttpDelete/PUT方法运行或发布到生产服务器上后出现405(Method Not Allowed)错误的解决办法

在 节点下增加一行去掉WebDAV的命令。重新定义WebAPI相关的handler;对于WebAPI,此行由框架自动添加。在modules节点下增加一行命令去掉WebDAVModule的命令。

2024-02-04 09:33:32 135

原创 VS 调试如何查看变量内存地址

2024-01-25 13:06:18 493

原创 C#比较两个list集合类的差异

如果list集合类的差异的话,直接使用List中的Except方法,会发现全部都不一样。第二个实现是通过使用指定的 IEqualityComparer 对值进行比较,生成两个序列的差集。解决方案:可以把集合类事先转换为ToJson的字符串,就可以使用List中的Except方法。List 继承了Enumerable ,Enumerable 中有一个Except方法。第一个实现是通过使用默认的相等比较器对值进行比较,生成两个序列的差集。这是用默认的相等对比器。

2023-12-14 16:47:31 672

原创 SUM()用法,C# ??用法,强制转换为Int类型错误

可以看出上面SQL语句查询无数据的时候.Sum() 返回值为null,强制转换为Int类型,会报如上错误。报错:到值类型“System.Int32”的强制转换失败,因为具体化值为 null。

2023-11-25 16:37:17 468

原创 MySQL索引创建

其中,index_name是索引名称,table_name是表名,column1, column2, …其中,index_name是索引名称,table_name是表名,column_name是唯一索引列名。其中,index_name是索引名称,table_name是表名,column_name是普通索引列名。其中,table_name是表名,index_name是索引名称,column_name是全文索引列名。其中,table_name是表名,index_name是要删除的索引名称。

2023-11-24 14:32:48 160

转载 VS2022发布独立部署的.net程序

以获取PDF文件使用字体的项目为例,VS2022中默认编译的是依赖框架部署方式(编译的结果如下图所示),如果要编译为独立部署,需要使用发布功能。在弹出的配置文件设置中,目标框架即使之前在项目属性中设置的信息,而部署模式则包含依赖框架和独立两种选项,选择独立方式,再设置目标运行时后,点击保存按钮。在项目属性中设置要发布的目标框架、操作系统及版本,设置完毕后,会保存在项目的csproj文件中(也可以直接修改csproj文件)。在位置中设置部署文件的发布位置,使用其默认位置即可,点击完成后准备发布。

2023-10-24 09:20:53 571

原创 【C#】值传递、引用传递和string类型的不可变性 以及 实战经验

按值传递时,传递过去的是该引用类型实例的引用的一个拷贝,这样说可能不是很清楚,而且容易引起误解。所谓引用,就是分配在栈上的一小块内存区域,里面存放着该引用类型实例在托管堆上的地址。引用类型在按值传递的时候,其实就是把它的引用在栈上复制出来一份,然后传递给方法。这样就造成了栈上的两个引用指向了托管堆上的同一个实例。所以这就可以解释,如下两个方法运行结果为什么会不一致。

2023-10-23 16:53:28 107

原创 乐观锁,悲观锁的区别及使用场景 乐观锁之版本号机制

每次获取数据的时候,都会担心数据被修改,所以每次获取数据的时候都会进行加锁,确保在自己使用的过程中数据不会被别人修改,使用完成后进行数据解锁。由于数据进行加锁,期间对该数据进行读写的其他线程都会进行等待。

2023-10-09 14:12:12 198

原创 ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

在传统的.NET Framework中,ASP.NET程序发布到IIS上面,是由IIS的工作进程(w3wp.exe)托管的,在任务管理器中可以找到该进程。在ASP.NET Core程序中不再是由IIS工作进程托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,然后将接收到的请求推送至中间件管道中,处理完请求后在将HTTP响应数据重新回写到IIS中,最终通过IIS转达到不同的客户端。

2023-10-07 14:39:05 1292

原创 MVC设计思想理解和ASP.NET MVC理解

MVC思想: UI层指View与Controller,业务逻辑层,数据访问层,模型层都被包括在Model中。微软ASP.NET MVC是一款对输入,输入进行分离的UI层框架。三层模式包括:UI层,业务逻辑层,数据访问层,模型层。MVC思想的M是业务逻辑层,数据访问层,模型层。ASP.NET MVC的 M是显示模型。

2023-09-19 10:00:18 475

原创 EF db.SaveChanges()第一个报错,同一作用域后续的db.SaveChanges()也会报第一个错误

【代码】EF db.SaveChanges()第一个报错,同一作用域后续的db.SaveChanges()也会报第一个错误。

2023-09-06 09:26:00 165

原创 Autofac中多个类继承同一个接口,如何注入?与抽象工厂模式相结合

③Autofac注入的时候先注册匹配非工厂名开头的Service,后注册匹配工厂名开头的Service。:①工厂名默认4位字符 ② 命名Service的时候以工厂名开头。Autofac中多个类继承同一个接口,默认是最后一个接口注入的类。无需编写抽象工厂模式中,各个工厂创建工厂产品的代码。原来是抽象工厂模式,多个类继承同一个接口。现在需要使用Autofac进行选择性注入。

2023-08-28 17:41:21 1181

原创 Autofac在WebApi,Winform中应用

使用AOP的时候需要安装Autofac.Extras.DynamicProxy,如果发现VS老是提示报错,需要把VS重启下才可以识别。:WebApi中多一个ApiController中构造注入功能。:直接以接口的方式进行注入。

2023-08-28 17:32:23 480

原创 C# 消费端如何一直监控RabbitMQ避坑指南

【代码】C# 消费端如何一直监控RabbitMQ避坑指南。

2023-08-21 17:24:09 199

原创 Rabbitmq的应用场景

虽然并行已经提高的处理时间,但是,前面说过,邮件和短信对我正常的使用网站没有任何影响,客户端没有必要等着其发送完成才显示注册成功,应该是写入数据库后就返回. 消息队列: 引入消息队列后,把发送邮件,短信不是必须的业务逻辑异步处理。​​并行方式​​:将注册信息写入数据库后,发送邮件的同时,发送短信,以上三个任务完成后,返回给客户端,并行的方式能提高处理的时间。​​订单系统​​:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功。2.秒杀业务根据消息队列中的请求信息,再做后续处理.

2023-08-19 14:51:25 1354

原创 Visual Studio如何使用ICE,.编写ice文件如何生成对应的c#代码

安装Ice-3.6.3.msi文件。安装IceBuilder.vsix。

2023-08-17 14:14:45 132

原创 C#Winform + RFID刷卡串口通信老是卡死

原来RFID刷卡在serialPort_DataReceived方法中触发回调函数的时候,需要给登录界面用户ID赋值,然后自动点击登录按钮的时候,在登陆按钮功能中需要把登录界面隐藏,并且需要把登录界面绑定的SerialPort的端口号Close(),原因就是。在登录界面通过RFID刷卡然后实现自动登录,一刷卡就会卡死。但是手动输入账号登录却没有问题。不会阻塞工作线程,也就是读取数据的线程立即完成。在登录界面通过RFID刷卡然后实现自动登录。会阻塞工作线程,也就是阻塞读取数据的线程。

2023-05-11 14:29:25 759 1

原创 C# ex.StackTrace 异常定位行号不显示的问题

使用ex.StackTrace输出信息,如上图所示,不显示报错行号。每次更新程序没有更新pdb文件或者pdb文件丢失,所以行号不显示。下图删除YX.pdb文件,再运行测试一下。

2023-04-07 16:37:08 1071

转载 C# Task.Run调用外部参数For循环 i

Task.Run是在新的线程中异步执行的,在 for 循环中 Task 并不会立即执行,“i会一直是10”说明 for 循环结束后,Task 才开始执行,这时 i 的值正好是 10。这说明 i 的值没有被捕获到 Task 的执行上下文中,也就是说 i 变量的值不在捕获范围内,要想让 i 被捕获,需要引入中间变量,下面的代码就可以正常执行。

2023-01-14 18:48:00 1230

原创 JSON格式化报错“Bad string on line“

JSON信息:{“TransactionName”: “EQPSTATUS”,“EqpNo”: “EX0013”,“UserID”: “744593”,“StatusCode”: “1”,“CycleTime”: “1.7”,“OutPutQty”: “1000”,“Target_OutPutQty”: “10000”,“WONO”: “1KB1840001-T”,“ErrorCode”: “”,“Availability”: “”,“ParameterList”: “[ {“P_N

2022-12-07 16:49:32 2179

转载 Sql SqlServer 脏读、 不可重复读和幻读

1.脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问这个数据,然后使用了这个数据。不可重复读 :是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。例如,一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。当编辑人员第二次

2022-12-06 19:43:48 727

原创 get和post关于请求头中的Content-Type理解

Content-Type 里指明了数据是以 multipart/form-data 来编码,上面提到的这两种 POST 数据的方式,都是浏览器原生支持的,而且现阶段标准中原生\ 表单也只支持这两种方式(通过 元素的 enctype 属性指定,默认为 application/x-www-form-urlencoded。浏览器的原生 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。............

2022-08-16 19:10:14 5363

原创 ASP.NET的MVC模式中分布页和布局页的使用

大概描述一下,分布页是布局页的一部分,分布页就相当于小图标,布局页就相当于PPT模板,PPT模板可以加入一些小图标(分布页),你只需要改改内容就好,视图创建的时候要选择包含布局页的。然后去Views文件夹下面创建Shared文件夹,位置一定要创建对了(某次测试小编就创建错了地方了,结果弄了一个小时才找到错误,?首先,去Controllers创建两个控制器,先不要创建视图。然后创建布局页(如果这里没有的话,就去新建项里面找)先创建分布页(如果这里没有的话,就去新建项里面找)然后打开控制器右键添加视图。...

2022-08-05 14:43:59 477

转载 _ViewStart.cshtml介绍

ViewStart.cshtml 文件的作用:一般是用于存放MVC网站中所有视图公用的js,css等文件。这样就不需要在每个视图中都拖一个js,css等文件进来了。Controller中方法必须以return View()来返回视图才先执行_ViewStart.cshtml 如图。MVC中执行任何一个视图之前都要先执行Views文件夹下的 _ViewStart.cshtml 视图的内容。当Views文件夹中的其他文件夹也添加了_ViewStart页面的时候执行顺序如下。......

2022-08-04 16:25:13 897

转载 SQLServer分表项目方案总结

在上一篇文章(SQLServer分表项目方案总结)中介绍了分表大致流程和步骤,本篇文章以一个模拟的数据表为例,为您介绍从分表前到分表结束整个过程的大致处理逻辑。

2022-07-29 10:44:46 1875

原创 SQLServer DateTime类型比较大小避坑篇

SQLServer DateTime字段类型对应的时间格式是 yyyy-MM-dd HH:mm:ss.fff ,3个f,精确到千分之三秒,示例 2014-12-03 17:06:15.433 。(9、0、1) 会引起进0调整;(5、6、7、8)引起7调整;(2、3、4)引起3调整。

2022-07-27 14:34:25 2855

转载 SQL注入是什么,如何避免SQL注入?

SQL注入已经成为互联网世界Web应用程序的最大风险,我们有必要从开发、测试、上线等各个环节对其进行防范。下面介绍SQL注入的原理及避免SQL注入的一些方法。

2022-07-22 20:13:06 763

转载 数据库主键设计用自增还是用 GUID比较好

使用自增的方式做主键的优点:1、数据的存储空间小,节省空间。2、insert和update操作时使用INT等类型性能会比GUID好,但是优势在15%以下。int自增序列 GUID性能测试http://blog.csdn.net/fox123871/article/details/65789223、可读性会好,对人类友好一点。5、支持通过函数获取最新的值,如:Scope_Indentity() 。123456789使用自增的方式做主键的缺点1、如果经常有合并表的操作,就可能会

2022-07-20 14:07:03 969

原创 Winrar自动备份文件

1.创建个快捷键,修改Target,加上 “-cpshowdoc-bak”2.Windows任务计划创建任务:

2022-06-24 16:35:18 248

原创 Winform 非UI线程更新UI控件 Control.Invoke 和 Control.InvokeRequired

一般Windows程序的UI线程只有一个,UI相关的更新都应该发生在UI线程上,才能保证安全。因此实际工作中,我们要学会怎么在一个非UI线程中转向UI线程中执行代码(或者通知UI线程执行某段代码)使用WinForm的Control.InvokeWinForm的每个Control都有一个属性(InvokeRequired)和一个方法(Invoke)用来在UI线程执行代码。Control.InvokeRequired属性指示当前线程是不是创建Control的线程。所以这种方法一般有以下的结构public

2022-05-24 18:04:37 549

原创 Redis Set之后Double类型丢失精度,如何解决

Set的时候可以转为String类型。Get的时候转为类即可。不丢失精度。return new StackRedisHelper().HashGetAllDynamic(RedisCustomKey.TCPS_LotRuleConfig + lotNum).ParseDictionaryToModel<LotRuleConfigDto>().ToJsonString();public Dictionary<string, dynamic> HashGetAllDynamic(

2022-04-20 17:27:06 1533 1

转载 【SQL Server】修改自增列当前起始值

情景有一列自增字段,当 插入数据失败 或 删除了一部分数据,这时我们再插入数据的时候,自增字段中间断掉/跳号… (不影响正常使用那如果非要连续的话,可以使用以下方法重置自增起始数1、先检查一下现在起始数(最后一个已插入数)是多少DBCC checkident([table_name], NORESEED)比如你看到表里目前插到id 55但是 DBCC 检查当前起始数是 72(下一个会插73)DBCC checkident(my_table, NORESEED)输出:检查标识信息:

2022-04-18 18:07:03 5229

原创 NPOI.MAPPER 导出Excel只有10条数据

var mapper = new Npoi.Mapper.Mapper(path);//读取的sheet信息 var plat_MachineRNAndFBNConfig_DtoRows = mapper.Take<Plat_MachineRNAndFBNConfig_Dto>(); List<Plat_MachineRNAndFBNConfig_Dto> plat_MachineRNAndFBNConfi...

2022-04-13 12:34:54 507

原创 EF实现查询结果集优先级

业务开发中经常遇到案例:条件1条件2条件3条件4优先获取满足条件的第一条数据。解决方案: 使用SQL语句的case when 或者 EF 的 三元表达式。var generalWorkOrder =( from a in db.Plat_OutPut join b in db.Plat_LotRuleConfigon a.LotNum equals b.LotNum //普通料:不鍍銅,有鉛 where (!b.MatGroupNum.Contains("鍍銅") &

2022-03-30 17:23:56 589

原创 C# DataTable的DataColumn和DataRow数据绑定,DataGridView Datasource数据绑定DataTable,List

1. datasource数据绑定根据列名的DataPropertyName进行数据绑定,HeaderText数据显示2. datasource数据绑定

2022-03-16 18:48:43 2338

转载 SQL SERVER-查看语句申请锁的情况

SQL SERVER-查看语句申请锁的情况想要观察一个SQL语句运行过程中申请了哪些锁,打开一个查询写入要被观察的SQL--查询当前会话的sessionIDSELECT @@SPIDSET TRANSACTION ISOLATION LEVEL REPEATABLE READBEGIN TRANSELECT [data] FROM [MyTable] WHERE [index_column]>30 AND [index_column]<40 ---执行了上面的SQL

2022-03-09 18:08:49 281

转载 var和dynamic的区别

1.var与dynamic的区别C#中的很多关键词用法比较容易混淆,var和dynamic就是其中一组,但其实它们是有本质的区别的。var 在编译阶段已经确定类型,在初始化时候,必须提供初始化的值,而dynamic则可以不提供,它是在运行时才确定类型。 static void Main(string[] args) { //var 在编译阶段已经确定类型 var number = 3; //dynamic在编译期

2022-02-10 17:23:37 401

原创 RSA非对称加密方式,公钥加密私钥解密,私钥签名公钥认证

什么是非对称加密非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;非对称加密的优缺点非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。  非对称加密的缺点是加密和解密花

2022-02-08 15:25:20 2044

原创 仓储模式和传统三层架构多数据库实现

仓储模式:通用方法public class DepartmentRepository : RepositoryBase<DepartmentEntity>, IRepositoryBase<DepartmentEntity>{}/// <summary>/// 仓储接口/// </summary>/// <typeparam name="TEntity">实体类型</typeparam>public interfac

2022-02-08 10:14:00 2143

ASP.NET SessionId.rar

SessionId研究

2021-12-24

AspNetIdentity.rar

ASP.NET Identity +Owin案例源代码

2021-11-15

ASP.NETMVCDemo7.rar

七天学会ASP.NET MVC (第7天)代码

2021-11-03

Asp.net MVC 数据库dbo.sql

数据库资源

2021-05-31

ASP.NETMVCDemo.rar

七天学会ASP.NET MVC (第1天-第6天)代码

2021-05-27

空空如也

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

TA关注的人

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