自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 问答 (1)
  • 收藏
  • 关注

原创 C#自定义控件

自定义控件、扩展控件、复合控件继承Control类扩展控件:继承某个具体的控件类,如:Button,Label等复合控件:继承UserControl类,又称用户控件UserControl。即:把多个控件通过组合的形式,形成更大,功能更全的控件。完全自定义控件继承Control,不是继承UserControl,VS2022中没有提供定义完全自定义控件的模板。1.方法1:通过用户控件,改写成完全自定义控件。2.方法2:通过组件,改写成完全自定义控件。通过用户控件改写后,把错误修复一下即可。

2025-07-14 22:21:47 1243

原创 解决重绘时闪烁的问题

/ 简写:把ControlStyles多个枚举项都设置成true。ControlStyles枚举项逐个设置,解决重绘时闪烁的问题。

2025-07-14 19:13:40 370

原创 EF提高性能(查询禁用追踪)(关闭延迟加载)

3.导航属性应定义为public virtual xxx,如果属性未定义为virtual,则Context不会进行延迟加载。1.context.Configuration.ProxyCreationEnabled应为true。EF默认是支持延迟加载的,在加载一个表的数据时,会把关联表的数据一并加载,这样会影响性能。一般建议关闭延迟加载可以提高EF加载的性能。// 如果禁用延迟加载后,又想同时加载关联表,怎么办呢?使用Include()如果要实现延迟加载,必须满足下边三个条件,缺一不可。

2025-07-09 21:36:48 325

原创 C#扩展方法

一个类Student没有父类,默认继承Object,所以Student的实例s能访问的方法,其实是Object里面的对象的方法。扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法:一个对象(比如:一个类)有一些核心方法。通过扩展方法向类的实例中扩展方法。扩展方法的第一个参数一般是扩展的对象。3.此方法的第一个参数必须以this开头,并且指定此方法是扩展自哪个类型。2.此方法必须放在非泛型静态类中。1.此方法必须是一个静态方法。

2025-07-09 16:04:05 206

原创 C# EF实体框架

实体框架(Entity Framework)是一种对象关系映射器(O/RM),它使.NET开发人员能够通过.NET对象来操作数据库。它消除了开发人员通常需要编写的大多数数据访问代码的需求。ORM框架有个优势:解放开发人员编写数据库操作逻辑,把关注点转移到业务逻辑。提高开发效率。(开发快,节省成本。EF是微软官方在推广的一个重要ORM框架。

2025-07-08 20:28:36 648

原创 C#Winform窗体显示模糊的问题

【代码】C#Winform窗体显示模糊的问题。

2025-07-08 17:01:03 224

原创 SQL聚合函数

use BookDB。

2025-07-03 21:02:04 290

原创 winfrom用代码操作 DataGridView

摘要:本文介绍了C#中DataGridView控件的常用自定义设置方法,包括修改列标题、调整列宽和行高、添加操作列等。重点展示了通过CellPainting事件绘制操作按钮(如删除、编辑等)的技术实现,包括文本测量、区域划分和自定义绘制流程。同时提供了CellMouseClick事件处理来响应按钮点击操作。这些方法可以帮助开发者灵活定制DataGridView的显示效果和交互行为。

2025-07-03 21:01:44 321

原创 SQL变量声明与赋值 分支 循环

– 变量 分支 循环– declare 变量名 数据类型– declare 关键字,作用声明变量– 变量名:以@开头– 数据类型:数据库中支持的数据类型:int varchar(n) text char(n) nvarchar(n)– 定义多个变量– 变量赋值,仅支持给一个变量赋值– 查看变量赋值的结果– 以为表格方式 查看变量赋值– 多个变量赋值,执行多次setuse BookDB– 将查询结果直接赋值给变量,注意:如何有多个记录,赋值最有一个结果– 同时给多个变量赋值

2025-06-26 20:01:44 396

原创 SQL SERVER存储过程

asbegin -- {-- 这里编写执行逻辑print '开始执行...'print '存储过程执行完毕'end --}---- bug: 如果 存储过程已经存在,执行新建报错触发存储过程。

2025-06-26 20:00:59 1006

原创 C# System.InvalidCastException:“指定的转换无效。”

先移除事件,更改之后再添加事件。

2025-06-25 21:01:15 104

原创 C# LINQ语法

LINQ(Language Integrated Query)是C#语言中的一个强大功能,开发者可以使用类似SQL的查询语法,直接在C#代码中对各种数据源进行查询操作。LINQ的设计目标是提供一种统一的查询方式,无论数据源是数组、集合、数据库还是XML文档。

2025-06-25 21:00:46 520

原创 T-SQL操作SQLSERVER——基本语法

database_id 列名称– where 筛选条件。and or–database_id 是每个数据库的唯一标识符,系统数据库通常有固定的 ID 值:–master 的 database_id 为 1–tempdb 的 database_id 为 2–model 的 database_id 为 3–msdb 的 database_id 为 4。

2025-06-19 20:08:19 446

原创 0612_正则表达式

C# 中的正则表达式是通过命名空间下的Regex类来实现的。正则表达式是一种强大的文本处理工具,用于搜索、匹配、替换和验证字符串中的模式。。

2025-06-12 20:28:50 413

原创 C#对象的本地保存

摘要 本文介绍了对象本地保存的三种方法:文本文件存储、二进制序列化和JSON序列化。对象在内存中的特性决定了程序关闭后对象状态会丢失,因此需要将对象属性保存到文件中。文本文件存储通过StreamWriter/StreamReader读写,但存在顺序依赖问题。二进制序列化使用BinaryFormatter将对象转换为二进制流,需要[Serializable]标记。JSON序列化提供了轻量级文本格式,展示了原生DataContractJsonSerializer和第三方Newtonsoft.Json两种实现方式

2025-06-12 15:29:17 643

原创 C#设计模式

C#常用设计模式摘要(150字): 本文介绍了C#中五种创建型设计模式:1) 单例模式确保类唯一实例,适用于全局对象;2) 工厂模式封装对象创建逻辑,通过统一接口生成不同产品;3) 抽象工厂创建产品族,无需指定具体类;4) 建造者模式分离复杂对象的构建与表示,支持多样化配置;5) 原型模式通过克隆而非新建来复制对象。每种模式均包含C#代码示例和典型应用场景,如日志系统、配置管理等。这些模式可有效提升代码复用性和灵活性。

2025-06-10 18:53:46 1258

原创 0610_特性和反射_加密和解密_单例模式

Obsolete。

2025-06-10 18:52:48 802

原创 图表控件及图表库

LiveCharts2 现在几乎可以运行在任何平台,支持Maui,Uno Platform、Avalonia、Etoforms、Xamarin、Blazor-wasm、WPF、Winforms、WinUI、UWP等。LiveCharts2 提供了折线图、饼图、柱状图、散点图、面积图等多种类型的图表。LiveCharts2 是LiveCharts(0)的升级,它修复了前身的主要设计问题,专注于在任何地方运行,在不丢失V0中已有的特性情况下提高了灵活性。可参考:【livechart2可绘制的图类型.png】

2025-03-27 16:37:37 504

原创 C#进阶(多线程相关)

NET Framework2.0时代,出现了一个线程池ThreadPool,是一种池化思想,如果需要使用线程,就可以直接到线程池中去获取直接使用,如果使用完毕,在自动的回放到线程池去;多线程是指程序中包含多个执行流(线程),即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。【一条线程指的是进程中一个单一顺序的控制流】,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程中有N个线程,但主线程只有一个,其他的线程都称为分线程。

2025-03-18 20:39:16 2088

原创 JSON 序列化 反序列化

其实就是转换数据格式的过程。

2025-03-15 15:25:00 1190

原创 C#特性和反射

主要让开发者在自定义特性时,控制自定义特性的应用范围,掌握预定义特性 AttributeUsage 描述了如何使用一个自定义特性类。它规定了特性可应用到的项目的类型。其中:参数 validon 规定特性可被放置的语言元素。它是枚举器 AttributeTargets 的值的组合。默认值是 AttributeTargets.All。参数 allowmultiple(可选的)为该特性的 AllowMultiple 属性(property)提供一个布尔值。如果为 true,则该特性是多用的。

2025-03-14 18:12:19 949

原创 C#委托和事件

平时用户自定义委托的机会不太多,一般都使用C#自带的委托:2.如何定义委托?使用delegate关键字定义观察一下:委托和方法的形式的区别:a. 没有方法体 b. 方法返回值前多一个delegate关键字。可以没有返回,可以没有参数。在类内部,在类外部, 但不能在方法内部定义一个事件。使用event关键字。EventHandler委托类型 MyClick就是委托实例,即事件变量。// 默认值null类内部,不能在方法内部。

2025-03-12 22:12:55 869

原创 C# N层思想

主要负责数据库中对象(表,视图,存储过程等)的映射,将来在C#语言中操作Model就相当于操作了数据库中的对象。

2025-03-11 19:45:11 188

原创 SQLServer视图

相当于创建一个“临时表”,其实是虚拟表,它是由真实的多个表组成的结果集。平时建议只对视图进行查询操作,增,删,修应该应用到真实的表结构。–视图对多个表的结果集合并。–视图:把多个表的结果集合并到一个视图中。–视图中的列必须具名。

2025-03-11 14:12:39 366

原创 SqlServer触发器

另外一种分类:before触发器,after触发器,控制触发器执行的时机,是在insert,update,delete语句前或后。insert触发器 2。delete 触发器 3。触发器不需要exec来调用,会自动执行。在插入,删除,更新数据时会执行触发器。

2025-03-11 11:47:04 354

原创 分页存储过程

【代码】分页存储过程。

2025-03-10 22:20:32 393

原创 sqlserver捕获异常

【代码】sqlserver捕获异常。

2025-03-10 21:55:58 242

原创 事务(SQLServer)

语法如下:‌开始事务‌:使用BEGIN TRANSACTION或BEGIN TRANSACTION。‌提交事务‌:使用COMMIT TRANSACTION。‌回滚事务‌:使用ROLLBACK TRANSACTION‌。

2025-03-10 21:39:55 171

原创 存储过程创建与调用(在SQL中)

封装一段SQL语句,让SQL语句当成一个整体(编译过),将来调用整体,性能高一些。大概类似于C#中方法。方法名,方法参数列表,返回值,输入参数in,输出参数out存储过程也有参数,也有返回值,输入参数,输出参数。

2025-03-10 21:25:29 256

原创 SQLServer 表关联

作用:返回两个表中匹配的行。

2025-03-10 16:24:35 642

原创 查询排序和分组

没有排序时,默认是按主键值递增。

2025-03-08 21:59:15 132

原创 SQL常用语句

向StudentInfo中添加100条数据,成绩在60-100之间随机,名称在张三1-100递增。–sql server循环只有一种:while–小知识:sqlserver中的字符串和数字相加,先把字符串转换成数字,再和数字计算。–这一特点和C#语句不一样,字条串和数据相加,是把数字隐式转换成字符串,再拼接。

2025-03-08 21:58:24 187

原创 SQLServer修复自增列不连续问题

RESEED, 新值:强制将标识值设为指定值(需谨慎使用)。NORESEED(默认):仅报告当前标识值和最大值,不修改。RESEED:重置标识值为当前表中的最大值(自动计算)。

2025-03-08 21:33:31 250

原创 SQLServer游标

自定义的变量名称游标状态--SQL Server中相等比较是一个=号,和C#不一样 ==begin--处理业务逻辑,将来根据需求处理,可以查询,插入,更新,删除,......--处理业务逻辑之后,让游标移动到下一行。相当于while循环中累加或累减语句。end5。关闭游标6。释放游标。

2025-03-08 20:33:36 297

原创 SQL分页常用的三种

StudentInfo表。

2025-03-08 18:38:03 391

原创 App.config创建连接字符串

摘要:本文介绍了在App.config中配置SQL Server连接字符串的两种方式,分别存储在connectionStrings和appSettings节点中。第一种方式使用标准属性(server,database,uid,pwd),第二种采用SQL客户端属性(Data Source,Initial Catalog等)。代码示例展示了如何通过ConfigurationManager读取这两种配置,并输出连接字符串。同时详细解析了连接字符串中各参数含义:server表示服务器地址,database指定数据库

2025-03-06 11:12:34 205

原创 SQLHelper类英文版和中文版

SQLHelper类中文和英文版

2025-03-05 21:54:00 211

原创 c#方法重载和方法重写和方法隐藏

方法隐藏:在派生类中定义一个与基类中同名的方法,但不使用override关键字。适用于完全不希望基类的该方法在派生类中被调用的情况。隐藏的方法在基类中不是virtual或abstract的。当调用隐藏的方法时,总是调用派生类中的版本,即使是通过基类引用来调用。方法重写:在派生类中提供基类中方法的特定实现,使用override关键字。,并用virtual或abstract关键字标记基类中的方法。方法重载:在同一类中定义多个同名方法,参数列表不同。,允许派生类提供一个特定于其自身的方法实现,该方法。

2025-03-05 17:02:01 255

原创 c#方法重载和方法重写和方法隐藏

方法隐藏:在派生类中定义一个与基类中同名的方法,但不使用override关键字。适用于完全不希望基类的该方法在派生类中被调用的情况。隐藏的方法在基类中不是virtual或abstract的。当调用隐藏的方法时,总是调用派生类中的版本,即使是通过基类引用来调用。方法重写:在派生类中提供基类中方法的特定实现,使用override关键字。,并用virtual或abstract关键字标记基类中的方法。方法重载:在同一类中定义多个同名方法,参数列表不同。,允许派生类提供一个特定于其自身的方法实现,该方法。

2025-03-05 17:00:49 286

原创 c#方法重载和方法重写

在C#中,方法重载(Method Overloading)和方法重写(Method Overriding)是两种不同的概念,它们都允许你在同一个类或继承体系内实现多个同名方法,但它们的目的和机制不同。:重载的方法可以有不同的访问修饰符,而重写的方法通常有相同的访问级别或更宽松的访问级别(例如,基类中的protected可以被派生类中的public override覆盖)。在上面的例子中,Add方法被重载了三次,每次调用时根据参数的类型或数量不同,会调用不同的方法。方法重载允许在同一个类中定义多个具有。

2025-03-05 16:54:31 254

C# LINQ语法 LINQ 实战

C# LINQ语法 LINQ 实战

2025-06-25

C#多线程和异步方法的研究

C#多线程和异步方法的研究

2025-03-24

示例数据库备份BankSystem

示例数据库备份BankSystem

2025-03-11

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

TA关注的人

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