- 博客(83)
- 收藏
- 关注
原创 异步方法关键字async和await
async关键字和await是配套使用的异步方法语法,配合Task类可以使多线程变得有序,也可以自己实现一套协程功能。async关键字(异步方法)async关键字是C#特有的。async在C#世界里是上下文关键字。它只有在修饰一个方法的时候才自动被编译器识别为关键字,在代码的其他位置上可以被用作变量名等其他任何用途。asyn关键字用来修饰两类方法:lambda表达式或则异步方法。拥有async修饰的方法称为async方法asyncawaitawait修饰的⽅法内部,应当出现⼀个关键字,两个关键字
2022-05-29 09:10:16 243
原创 delegate、event、Action、EventHandler的使用和区别
曾经.Net大佬只有一个Delegete(委托),别人想用委托的时候,必须得用delegate关键字来定义一个委托,就像这样 ://定义一个无返回值的,带一个int参数的委托 public delegate void myDelegate(int num);话说,委托生来是为了将方法也作为参数进行传递的。所以后来它学会了发布者/订阅者模式。比如:public myDelegate m_delegate; m_delegate += MyFun; public void MyFun(int nu
2022-05-18 15:01:19 730
原创 C#多播委托
在 C# 语言中多播委托是指在一个委托中注册多个方法,在注册方法时可以在委托中使用加号运算符或者减号运算符来实现添加或撤销方法。在现实生活中,多播委托的实例是随处可见的,例如某点餐的应用程序,既可以预定普通的餐饮也可以预定蛋糕、鲜花、水果等商品。在这里委托相当于点餐平台,每一个类型的商品可以理解为在委托上注册的一个方法。下面通过实例来演示多播委托的应用。【实例】模拟点餐平台预定不同类型的商品。根据题目要求,在实例中分别预定快餐、蛋糕、鲜花三类商品,代码如下。class Program{//(
2022-05-07 08:32:09 475
原创 删除datatable中的一行数据
在C#中,如果要删除DataTable中的某一行,大约有以下几种办法:1,使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);可以直接删除行。2,datatable.Rows[i].Delete()。Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消删除。
2022-04-27 08:36:43 734
原创 Event事件
无论是企业中使用的大型应用程序还是手机中安装的一个 App 都与事件密不可分。例如在登录 QQ 软件时需要输入用户名和密码,然后单击“登录”按钮来登录 QQ,此时单击按钮的动作会触发一个按钮的单击事件来完成执行相应的代码实现登录的功能。在 C# 语言中,Windows 应用程序、 ASP.NET 网站程序等类型的程序都离不开事件的应用。事件是一种引用类型,实际上也是一种特殊的委托。通常,每一个事件的发生都会产生发送方和接收方,发送方是指引发事件的对象,接收方则是指获取、处理事件。事件要与委托一起使用
2022-04-20 09:08:23 241
原创 InputBindings 用法
InputBindings:获取与此元素关联的输入绑定的集合。内容为一个或多个 InputBinding 元素(通常为 KeyBinding 或 MouseBinding 派生类)。 其中每个都应具有 Command 和 Gesture 属性集。下面是给Border控件绑定鼠标右击事件(也可传递参数)<Border Height="50" Background="Gray" Margin="2 2 2 0"> <Border.InputBindings> <MouseB
2022-04-10 08:34:04 623
原创 SQL Server Offset Fetch子句
OFFSET 和 FETCH 子句是 ORDER BY 子句的选项。 它们用于限制查询返回的行数。必须将 OFFSET 和FETCH 子句与 ORDER BY 子句一起使用 。OFFSET 和 FETCH 子句比实现 TOP 子句更适合实现查询分页解决方案以下是 OFFSET 和 FETCH 子句的语法:ORDER BY column_list [ASC |DESC]OFFSET offset_row_count {ROW | ROWS}FETCH {FIRST | NEXT} fetch_row
2022-03-28 08:16:05 918
原创 SQL Server Select Top语句
SELECT TOP 子句用于限制查询结果集中返回的行数或行百分比。由于存储在表中的行的顺序是不可预测的,因此 SELECT TOP 语句始终与 ORDER BY 子句一起使用。 结果,结果集限于前 N 个有序行数。以下是带有 SELECT 语句的 TOP 子句的语法:SELECT TOP (expression) [PERCENT][WITH TIES]FROMtable_nameORDER BYcolumn_name;在此语法中, SELECT 语句可以包含其他子句,如: WHERE
2022-03-20 08:19:57 708
原创 WPF绑定
介绍3种WPF绑定的用法,包括了WPF绑定控件及非控件对象的用法1.WPF绑定使用的源属性必须是依赖项属性,这是因为依赖项属性具有内置的更改通知支持,元素绑定表达式使用了Xaml扩展标记,WPF绑定一个控件是使用Binding.ElementName,绑定非控件对象时使用Source,RelativeSource,DataContext属性(WPF特有,而非XAML),只能绑定对象的共有字段。下边是部分Binding 属性名Source:数据提供者RelativeSource:根据当前对象为基础,自
2022-03-08 15:11:08 1974
原创 WPF依赖属性
下面演示了在Button按钮上为Content属性设置了一个绑定语法, 如下所示:在WPF当中, 所有支持绑定的属性本质上它都是封装后的依赖属性。属性和依赖属性现在, 我们来解决另外一个概念问题, 可能看到上面, 你还是不太清楚属性和依赖属性它们的区别在哪里?属性很常见, 在C#中的标准属性,通常会由一个非静态类型的私有字段支持, 假设当前有一个对象, 它拥有100个标准属性,并且背后都定义了一个4字节的字段, 如果我们初始化10000个这样的对象, 那么这些字段将占用100×4×10000=
2022-03-01 15:35:07 325
原创 绑定到集合
·利用ItemsSource来绑定数据源常用标记:{Binding Path=””} ItemSource DisplayMemberPath通常来说这是我们在做以数据驱动为主的应用时最经常用到的绑定方式。WPF支持任何类型的.NET对象作为数据源绑定到WPF对象。对于所有的ItemsControl对象都有一个ItemsSource依赖属性,这是专门为数据绑定而准备的。ItemsSource的类型是IEnumerable,所以对于我们几乎所有的集合类型我们都可以轻易的改变成ItemsSou
2022-02-24 15:28:50 132
原创 WPF的表格布局
1.Grid布局就是表格布局2.使用方法2.1. 先生成适量的行和列,代码如下: <Grid><!--使用Grid控件--> <Grid.ColumnDefinitions><!--定义Grid的列,定义3列--> <ColumnDefinition></ColumnDefinition> <ColumnDefiniti
2022-02-24 15:13:43 795
原创 Style的用法
Style是一种修改属性值的方法。我们可以将其理解为对属性值的批处理,通过Style我们可以批量修改属性的值。先从一个简单的Style例子开始:<Window x:Class="Viewer3D.WindowSettins" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title=
2022-02-24 15:09:47 1609
原创 了解WPF
WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。WPF由.NET Framework 3.0 开始引入,与Windows Communication Foundation及 Windows Workflow Foundation并行为新一代 Windows操作系统以
2022-02-24 15:05:28 193
原创 什么是WPF
WPF是微软新一代图形系统,运行在.NET Framework 3.0及以上版本下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。 程序员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已不再是遥不可及的奢望。 WPF相对于Windows客户端的开发来说,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,
2021-12-28 15:51:40 1092
原创 WPF中StringFormat的用法
例一:C#中用法:格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)示例:string.Format("{0:C}",0.2) 结果为:¥0.10 (英文操作系统结果:$0.10)默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数string.Format("{0:C1}",10.05) 结果为:¥10.1 (截取会自动四舍五入)格式化多个Object实例 string.Format(“会员价:{0:C},优惠价{1:C}”,99.15,109.2
2021-11-07 19:17:33 695
原创 C#的环境
C# 环境C# 是 .Net 框架的一部分,且用于编写 .Net 应用程序。因此,在讨论运行 C# 程序的可用工具之前,让我们先了解一下 C# 与 .Net 框架之间的关系。.Net 框架(.Net Framework).Net 框架是一个创新的平台,能帮您编写出下面类型的应用程序:Windows 应用程序Web 应用程序Web 服务 .Net 框架应用程序是多平台的应用程序。框架的设计方式使它适用于下列各种语言:C#、C++、Visual Basic、Jscript、COBOL 等等。所有这些
2021-10-27 09:07:05 358
原创 switch语句
一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。语法C# 中 switch 语句的语法:switch(expression){case constant-expression : statement(s); break;case constant-expression : statement(s); break; /* 您可
2021-10-18 08:44:16 2173
原创 数据初始化和LINQ
var res = from m in masterList //from后面表示查询的集合,m是为这个查询到的内容定义一个别名,而in后面的则是查询的集合where m.Level > 8 //where后面表示 查询的条件select m; //表示返回m 或者m.Level 只返回其中的等级1.拓展方法var res = masterList.Where(Test1); //过滤方法 static bool Test1(Mart
2021-10-12 09:16:34 183
原创 路由事件处理方式
路由事件使用以下三种路由策略之一:浮升(冒泡): 调用事件源上的事件处理程序。路由事件随后会路由到后续的父级元 素,直到到达元素树的根。大多数路由事件都使用浮升路由策略。浮升路由事件通常用于报告来自不同控件或其他 UI 元素的输入或状态变化。隧道:最初将调用元素树的根处的事件处理程序。随后,路由事件将朝着路由事件的源节点元素(即引发路由事件的元素)方向,沿路由线路传播到后续的子元素。合成控件的过程中通常会使用或处理隧道路由事件,通过这种方式,可以有意地禁止复合部件中的事件,或者将其替换为特定于整个控件的
2021-09-28 08:19:19 189
原创 软件架构分层模式
分层模式是最通用的架构,也被叫做N层架构模式(n-tier architecture pattern)。一、模式分析分层架构模式里的组件被分成几个平行的层次,每一层都代表了应用的一个功能(展示逻辑或者业务逻辑)。尽管分层架构没有规定自身要分成几层几种,大多数的结构都分成四个层次:表现层,业务层,持久层,和数据库层。有时候,业务层和持久层会合并成单独的一个业务层,尤其是持久层的逻辑绑定在业务层的组件当中,形成。因此,有一些小的应用可能只有3层,一些有着更复杂的业务的大应用可能有5层或者更多的分层。架构
2021-09-17 11:21:50 358
原创 XAML样式分类
属性样式直接通过UI元素的属性设置的样式类似于在HTML中直接通过HTML元素属性设置的样式适用于复用度不高的一些属性内联样式通过在UI元素中嵌入Style节点来设置样式实际上是设置元素的Style属性若内联样式与属性样式对同一属性进行设置,以属性设置的样式为准-内联样式和模板的限制可扩展应用程序标记语言 (XAML) ,样式和模板属性在技术上可以通过以下两种方式之一进行设置。 您可以使用特性语法(属性语法)来引用资源中定义的样式,例如 < 对象 Style="{StaticRes.
2021-09-09 08:55:23 107
原创 XAML样式与模板
开发过程中,我们有时候用WPF原生的控件就能实现自己的需求,但是样式、风格并不能满足我们的需求,那么我们该怎么办呢?----自定义样式与模板。一、样式在WPF中我们可以使用Style来设置控件的某些属性值,并使该设置影响到指定范围内的所有该类控件或影响指定的某一控件,比如说我们想将窗口中的所有按钮都保持某一种风格,那么我们可以设置一个Style,而不必分别设置每个按钮的风格。Style是作为一种资源被保存下来的.,看下面的例子:<Style x:Key="style1" TargetType="
2021-08-27 14:57:21 281
原创 介绍三层架构
三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。三层架构区分层次的目的是为了 “高内聚,低耦合”。开发人员分工更明确,将精力更专注于应用系统核心业务逻辑的分析、设计和开发,加快项目的进度,提高了开发效率,有利于项目的更新和维护工作。含义 :三层架构主要是指
2021-08-17 16:35:14 362
原创 介绍WPF
WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。定义WPF是微软新一代图形系统,运行在.NET Framework 3.0及以上版本下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。WPF是Windows操作系统中一次重大变革,与早期的GD
2021-07-27 10:55:30 252
原创 导入数据验证
将导入的数据逐条验证对象列表–存放要保存的数据List<SYS_Student> listStudent = new List<SYS_Student>();查询出 学院,专业,年级,班级 的信息:用来根据名称获取对应的IDList<SYS_Academe> dbAcademe = myModels.SYS_Academe.ToList();List<SYS_Specialty> dbSpecialty = myModels.SYS_Specialt
2021-07-07 09:54:32 227
原创 去除数据表空行
去除datatable 空行private void removeEmptyRow(DataTable dt)存放需要移除的DataRowList removeList = new List();遍历所有的行for (int i = 0; i < dt.Rows.Count; i++)标识是否是空行-默认为空行bool rowDataIsEmpty = true;遍历DataRow的所有列for (int j = 0; j < dt.Columns.Count; j++)判断
2021-06-27 15:32:59 227
原创 Excel文件导出
检查模板文件是否存在将相对的路径转为实际的物理路径string templatePath = Server.MapPath("~/Document/DataTemplate.xls");判断模板是否存在if (!System.IO.File.Exists(templatePath))如果不存在,就返回失败信息return Content(“导出失败,请联系网站管理员”);使用NPOI打开模板Excel使用文件打开 模板文件FileStream templateStream = System
2021-06-16 09:04:42 101
原创 导出数据到Excel
导出数据到Excel,使用读取模板的方式导出数据。查询数据·查询相关的详细信息,例如:·条件筛选if (!string.IsNullOrEmpty(strConditions)){list = list.Where(o => o.productCode.Contains(strConditions) || o.productName.Contains(strConditions) || o.
2021-06-07 14:36:15 112
原创 保存修改图片
判断文件是否存在(确定给定路径是否引用磁盘上现有的目录)if (!System.IO.Directory.Exists(Server.MapPath("~/Document/productPicture/"))){创建文件夹(在指定路径创建所有目录和子目录)System.IO.Directory.CreateDirectory(Server.MapPath("~/Document/productPictu re/"));}查询旧的数据(旧的图片),查询出之前图片信息var dbStudentP
2021-05-26 10:30:02 164
原创 导入数据
思路如下:1、获取读取的文件;2、把文件转换为二进制数组;3、二进制数组转成内存流;4、利用NPOI把内存流中的数据读取成Excel在导入数据之前,先要下载导入数据的模板,例如:public ActionResult DownImportTemplate(){//获取路径string filePath = Server.MapPath("~/Document/信息导入模板.xls");//判断文件是否存在if (System.IO.File.Exists(filePath)){//使用文
2021-05-17 10:05:36 326 2
原创 浏览器信息打印
浏览器信息打印按照项目的计划流程,做到了信息打印这一功能。这是比较崭新的一个功能,想对于增删查改来说,实在是有趣。要实现打印的功能其实也不难,首先是在视图写一个ajax的数据提交方法,设置好按钮的点击事件,如下:方法主要的部分是使用指定的操作名称和控制器名称生成操作方法,分工十分明确,需要的是什么就获取到什么。然后打开一个新的窗口,数据提交成功以后把内容添加到新的窗口,否则返回警告。控制器部分只需要执行简单的查询,查询到的信息返回到一个局部视图,就是把内容放新的窗口实现预览的效果。点击打印表格就是
2021-05-08 14:58:21 197
原创 登录页面
获取账号密码string userName = “”;string password = “”;读取浏览器请求传递得的cookie,写个判断,判断cookie是否存在HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[“user”];对字符串进行url解码,并返回已解码的字符串userName = System.Web.HttpContext.Current.Server.UrlDecode(cookie[“use
2021-05-08 11:17:41 121
原创 C#常量
常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。常量可以被当做常规的变量,只是它们的值在定义之后不能被修改。整数常量整数常量可以是十八进制、八进制或者十六进制的常量。前缀指定基数,没有前缀则表示十进制。整数常量也可以有后缀,可以是U和L的组合,其中,U和L分别表示unsigned和long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。浮点常量一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。可以使用小数行
2021-05-07 09:39:48 151
原创 C# if...else语句
If 条件C# 允许您执行基于条件的代码。如需测试某个条件,您可以使用 if 语句。if 语句会基于您的测试来返回 true 或 false:–if 语句启动代码块–条件位于括号中–如果条件为真,则执行花括号中的代码else 条件if 语句能够包含 else 条件。else 条件定义条件为 false 时执行的代码。if…else语句一个if语句后个跟一个可选的else语句,else语句在布尔表达式为假时执行。C# 中 if…else 语句的语法:if(boolean_express
2020-08-18 09:12:29 864
原创 修改密码
检查是否登录一个try……catch语句,检查用户是否登录。如果出现异常就说明没有登录,重新定向到登录页面。try{int userID = Convert.ToInt32(Session[“UserID”].ToString());}catch (Exception e){Console.WriteLine(e);return Redirect(Url.Content("~/Main/Login"));}判断旧密码是否正确try……catch语句try{获取session中的
2020-08-18 09:04:52 121
原创 实现电子客票打印功能
前段时间做的一个模拟项目:飞机订票系统,电子客票打印是电子票证里的一个功能,下面就说说如何在vs中实现。在解决方案里找到电子票证控制器文件夹添加一个控制器,取名:TicketPrintController引入,可以创建控制器的时候自己引入,也可以报错的时候引入。复写父类的该方法。执行控制器中的方法之前先执行该方法。从而实现过滤的功能。protected override void OnActionExecuting(ActionExecutingContext filterContext){
2020-08-18 08:10:01 307
原创 SQL 多表查询
开发工具与关键技术:SQL VS作者:李文韬撰写时间:2020年8月7日不同的 SQL joininner join(内连接):如果表中至少有一个匹配,也从左表返回所有的行left join(左连接):即使右表中没有匹配,也从右表返回所有的行right join(右连接):即使左表中没有匹配,也从右表返回所有的行full join(全连接):只有其中一个表中存在匹配也从表返回所有的行内连接交叉连接查询(基本不会使用,得到的是两个表的乘积)selectfrom table1,table2
2020-08-09 20:35:26 146
原创 SQL的增加、删除、查找、修改语句
开发工具与关键技术:SQL VS作者:李文韬撰写时间:2020年8月7日SQL数据库的基本操作:增、删、查、改。增加数据:insert例子:(1)insert into t_user(id, username) values(10, “hehehe”);(2)insert into t_user(id, gender, username, age, password) values(15, ‘男’, ‘shihu’, 18, ‘123456’);(3)insert into t_user v
2020-08-09 20:29:12 1655
原创 using的使用方法
开发工具与关键技术:C#作者:李文韬撰写时间:2020年8月6日using指令using命名空间名字,用于未命名空间创建别名或导入其他命名空间中定义的类型。例如:using System;这样可以在程序中直接用命令空间中的类型。而不必指定的详细命名空间。类似java的import,这个功能也是最常用的,几乎每个cs程序都会用到。例如:using System;一般都会出现在*.cs中。using别名包括详细命名空间信息的类型。例如:using aClass=NameSpace1.Myc
2020-08-09 20:24:29 373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人