- 博客(13)
- 收藏
- 关注
原创 C#存储过程的使用
2 sql语句写在客户端,可以利用sql注入进行攻击,为了安全性,可以把sql封装在服务器存储过程,在客户端进行调用即可。在WinForm中添加一个按钮和两个dataGridView控件,我们要在winform中调用SQL中的存储,代码如下。1 如果sq1语句直接写在客户端,以一个字符中的形式体现的,提示不友好,会导致效率降低。-- 统计分析考试成绩,显示班级名称、C#平均分、数据库平均分,按照班级分组实现。-- 查询考试成绩,显示:学号、姓名、班级、总成绩,并按成绩的总分高低排序。
2024-02-29 19:23:14 408
原创 SQL事务
3.2 隐形事务 通过set transaction on 语句 把隐形的事务模式打开,其后面的sql语句将自动开启一个事务 提交或者回滚事务之后,下一个sq1将开启另外一个事务。3.1 显不事务 通过begin transaction明确指定开启事务 ,最常用的事务类型。事务:是作为单个逻辑工作单位执行的一系列操作,多个操作作为一个整体向系统提交,要么都执行。原子性:事务是一个完整的整体,事务各部操作是不可分的 要么都执行 要么都不执行。要么都执行事务是不可分割的工作逻辑单位。
2024-02-28 19:02:40 489 1
原创 c#线程的概念
每一个应用程序在运行期间就是一个进程,每个进程可以有多个线程,每个进程默认都有一个主线程,所有的代码默认都是在主线程中执行的。线程:被定义为程序执行的路径 如果应用程序涉及到复杂和耗时的操作,可以通过开辟不同的线程来执行复杂或耗时的任务。线程在c#使用System.Threading.Thread 类进行创建,程序在执行的时候,主线程默认会被创建。2就绪状态,线程准备好了等待CPU周期时的状态。4死亡状态,当线程已经完成执行或者终止时的状态。使用线程可以提高程序执行的效率。线程的生命周期中的各种状态?
2024-01-22 20:51:16 428 1
原创 c#_事件原理
第一个打印是在定义事件中的EventTest方法触发的那时候还没有改变value的值,只是给value赋了个值,初始value是没有值的,但在Main中我们修改了SetValue的参数,也就是修改了value的值,然后触发了方法。事件的概念:Event:基本上说是一个用户操作 列如按键按下、点击、鼠标移动等等,或者一些系统提示信息,如手机里面的通知,应用程序需要在事件发生时相应事件。发布器:是一个包含事件和委托定义的对象,事件和委托之间的关系也是定义在这个类里面的,发布器类的对象。事件和委托之间的联系。
2024-01-17 20:10:30 561
原创 c#_使用委托传递方法
4 开始form2的c1赋值,把changeBack赋值给c1,在跳转的时候通过对象.c1进行赋值, f.c1 = ChangeBack;3 在Form2 定义一个委托类型接受changeBack方法 ,再定义一个委托类型的变量form2的c1。目的:在form1定义一个方法,想通过委托把form1的方法传递到form2里面,在form2使用这个方法。5 验证在form2 调用c1, c1(传递颜色);1 添加一个跳转按钮 跳转到form2窗体 对应button1_click。
2024-01-16 21:20:08 422 1
原创 c#_delegate委托
委托:(delegate) 类似于c语言的指针,委托是存有对某个方法的引用的一种引用类型变量,其实委托就是一种。3.1声明委托 类似于声明一个变量 public delegate 方法返回值类型 委托名(参数1,参数2);定义一个带有一个参数的委托类型。委托一般用于事件或者回调函数(方法的参数),委托继承于System.delegate这个类。public int Add(string a) { } 先声明一个与委托类型匹配的方法。c1就是委托类型的变量,值就是AddNum方法。3.2 给委托赋值。
2024-01-15 19:49:19 438
原创 数组Lambda
Lambda表达式 c#之前有匿名函数这个知识点,随着net版本的更新把匿名函数改成lambda表达式。Lambda表达式只要是筛选满足条件的元素,其实就是一个函数,主要作为其他函数的参数。Func<参数1类型,参数2类型,返回值类型> 表达式名 = 例如以下图。当然这不是最简便的写法在方法体实现时候如果只有一句代码可以把。如果参数只有一个的话,参数的小括号可以省掉。lambda创建一个方法 具体的格式。find 查找满足条件的第一个元素。可以把一个方法定义另一个方法中。Func 代表一个方法。
2024-01-09 20:22:57 349
原创 值类型_结构体
4结构体在声明字段初始化不能赋值 可以在构造器进行赋值 类可以在初始化和构造函数都可以赋值。结构体属于值类型使一个单一变量可以储存各种数据类型的相关的数据。2结构体不能声明无参数的构造函数 类可以声明无参数的构造函数。值类型: 基本数据都是值类型、结构体、枚举类型。6结构体不能声明protected成员变量。5结构体和类都可以实现一个或多个接口。1 结构体是值类型 类是引用类型。3结构体不能被继承 类可以被继承。string 特殊的引用类型。
2024-01-08 19:45:22 449
原创 c#_接口
接口的定义 把里面的东西进行封装 并不知道里面是怎么实现的 可能需要和其他东西结合在一起使用 他们链接的部分就是接口。使用interface 关键字定义接口 以后一般以I开头进行命名。2 接口可以实现另一个接口 类可以实现一个接口或多个接口。1 接口具有强制性 必须对接口里面属性和方法进行实现。接口中的属性方法等只做一个声明 没有任何实现。接口当中的属性和方法默认都是public的。接口的作用硬件方面计算机具有可扩展性。
2024-01-06 10:00:48 363 1
原创 密封类&里氏转换
int a = 10;当类处于密封类的时候,这个类无法作为父类,也就是无法被其他类继承。int 4字节 32位:-2~31 - 1 2~31 + 1。里氏转换 在c#当中小区间的可以赋值给大区间的反之不可以。密封类 sealed 他不能被继承。double 8字节 64位。bool 1字节 8位。char 1字节 8位。
2024-01-06 09:51:08 339 1
原创 c#_抽象类
在抽象类中子类必须实现父类的抽象方法,除非子类也是抽象类,抽象类中也可以定义普通方法。3抽象方法在子类被实现 需要在子类的方法前面添加overrider关键字。1只能定义在抽象类里面 在方法前面添加abstract进行修饰。抽象类不能是static 也不能是sealed(密封)4子类必须重写所有父类的抽象方法 除非子类也是抽象方法。抽象类可以有抽象方法,只有声明部分 没有实现部分。抽象类 使用abstract 定义抽象类。2只有声明部分 没有实现部分。抽象类里面也可以有普通方法。
2024-01-04 17:35:59 340 1
原创 继承_虚方法
在继承的过程中有时候会出现子类中有一个方法名在父类中也有,这时候子类的方法就会出现问题,想要解决这个状况有两种方法。return string.Format("我的父类的getInfo方法{0}", Name);return string.Format("我是父类的getInfo方法{0}",Name);return string.Format("我是子类的getInfo方法{0}", Name);return string.Format("我是父类的getInfo方法{0}",Name);
2024-01-03 19:19:02 360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人