C#
琚建飞
这个作者很懒,什么都没留下…
展开
-
【C#工具】后宫佳丽三千
雅俗共赏。原创 2019-11-08 23:18:27 · 431 阅读 · 0 评论 -
信息管理系统核心—SQLHelper+配置文件+SQLServer增删改查
前言 对于Windows Form系统,接触的最多的是信息管理系统,除了逻辑上的问题之外,信息管理系统最重要的部分就是对数据库的增删改查了,也就是三层架构里面的数据访问层(DAL)的功能。SQL Helper是从DAL中提炼出来的和数据库进行交互的代码,使DAL更加的精简,系统整体运行效率更高。配置文件是可以更方便我们来更改一些常用的设置,比如说:系统代码要再另一台机器上运行,配置文件中改一原创 2017-01-20 15:13:08 · 1588 阅读 · 20 评论 -
【Ado.Net】基础知识+简单实例
为什么要学Ado.Net? 作为程序员,我们一般都可以在Sql Server 的查询分析器里面查看和操作数据库中的数据。但是普通的用户如果要查看和操作数据库中的数据,在查询分析器里面就不会了,我们不能让普通团用户去学Sql server吧。所以,我们搭建了一个界面(Web/Winform)让用户方便的操作数据库中的数据,而Ado.Net在其中就起到了重要的作用。什么是Ado.Net?原创 2017-02-04 21:59:10 · 2273 阅读 · 6 评论 -
using用法和SqlCommand认识
using三种用法private void button1_Click(object sender, EventArgs e){ SqlConnection conn = null; //实现了IDisposable接口的对象,可以使用using进行资源管理(如:SqlDataAdapter、SqlDataReader、DataSet、SqlCommand) //原创 2017-02-10 19:56:29 · 2804 阅读 · 5 评论 -
Sql注入和参数化查询
简单SQL注入 之前写的一篇博客,里面有一个登录实例,是通过字符串拼接完成对数据库的查询的。当我在用户名框中随便输个字符,在密码框中也随便输入几个字符并在后面加上【’ or ‘1’ = ‘1】,点击登录,登录成功。因为1=1永远成立,所以where后面的字符串永远返回true。参数化查询private void btnLogin_Click(object sender, Ev原创 2017-02-10 20:25:02 · 1961 阅读 · 8 评论 -
登录次数限制实例
业务逻辑1、根据用户名从数据库中取出一行数据,并根据数据库服务器时间,算出上次限制登录的时间和当前时间的时间间隔。 2、判断此用户时间间隔过了15分钟没有。如果没有,则给出禁止登录的提示;如果超过15分钟,则判断密码是否正确。 3、如果密码正确,提示登录成功并重置错误次数;如果密码不正确,则给出密码错误提示并更新数据库错误次数。并判断是否够3次了。 4、如果够3次的话,就记录错误时间原创 2017-02-13 17:07:42 · 6960 阅读 · 7 评论 -
SQLHelper+配置文件+参数查询
基础代码private void btnLogin_Click(object sender, EventArgs e){ string uid = txtUserName.Text.Trim(); string pwd = txtPwd.Text.Trim(); SqlParameter[] spa = new SqlParameter[]{ ne原创 2017-02-13 20:38:18 · 897 阅读 · 6 评论 -
EF初识
前言 定义:EF,全称Entity Framework,基于Ado.net的数据持久层框架。 特点:支持多种数据库(MSSQL、Oracle、DB2);强劲的映射引擎,能很好地支持存储过程;提供Visual Studio集成工具,进行可视化操作;能够与Asp.Net,WPF,WCF进行很好的集成。 原理:利用xml配置文件实现对象关系映射。自动把对象转成SQL语句,存储到数据库。原创 2017-03-13 16:03:35 · 770 阅读 · 11 评论 -
EF登录实例
前言 学习EF发现,泛型,Lambda表达式,标准查询运算符都有所涉及,可是自己对这些知识还是有些陌生,目前阶段只能照葫芦画瓢的用EF敲出一个简单登录实例,具体的原理有待进一步学习。其核心代码其实只有两行而已://判断用户名是否存在List list = db.Users.Where(u => u.UserName == uid).ToList();//判断密码是否正确List原创 2017-03-14 22:11:27 · 2778 阅读 · 11 评论 -
EF零基础做出winform登录实例
注:EF登录实例教程。使用工具:SQL Server、Visual Studio1、新建一个数据表,起名Users,新建三个字段ID,UserName,Password。如果自己懒的建,直接复制下面的代码到sql中执行即可。create database EF //新建数据库create table Users ( //新建数据库表 ID int identity原创 2017-03-15 11:37:28 · 9730 阅读 · 14 评论 -
B窗体关闭时刷新A窗体的DataGridView
需求:A窗体中有一个DataGridView和一个添加按钮,我需要在DataGridView中添加一行信息,要求添加后DataGridView自动刷新。 实现思路:单击添加按钮,弹出B窗体,手动添加信息,单击保存按钮,并依次执行三个操作,保存到数据库,关闭B窗体,A窗体中DataGridView中信息重新加载。重点:如何在B窗体中调用A窗体的刷新方法? A窗体代码private voi原创 2017-08-09 21:11:47 · 2198 阅读 · 10 评论 -
文本框判空,如何提高灵活性?
做Winform界面的时候,上面有六个文本框需要判空,之前的思路大致是这样的,代码如下:if (txtUserName.Text.Trim() == ""){ MessageBox.Show("用户名不可以为空!", "温馨提示"); txtUserName.Focus();}else if (txtPassword.Text.Trim() == ""){原创 2017-11-01 14:11:07 · 585 阅读 · 2 评论 -
Winform界面调整注意事项
背景 一直以来,做Winform程序,界面调整基本按照感觉来做,不系统,没套路,所以做出来的界面都是如图1-1所示效果。 图1-1 界面调整前 后来经组长指点,大致对界面改进了一下,改进后的效果如图1-2所示,基本还算满意。 图1-2 界面调整后 组长对我的建议就是模仿Win10的界面去做,然后我就做了一个Demo,如图1-3: 图1-3 图右为Demo界面原创 2017-11-01 16:40:53 · 843 阅读 · 6 评论 -
多线程与UI操作
前言 为了让程序尽快响应用户操作,在开发Winform应用程序时经常会使用多线程,对于耗时的操作如果不使用多线程将会使UI界面长时间处于停滞状态,这种情况是用户非常不愿意看到的,怎么办呢?用多线程。它可以很好的解决这个问题。下面是使用多线程操作界面UI的代码:private void btnTest_Click(object sender, EventArgs e){ Th原创 2017-11-08 21:09:04 · 1592 阅读 · 6 评论 -
多个panel控件重合使用时,某个panel控件不显示问题?
前言 在设计一个界面时,为了节省空间,我将控件分类后分别放到了三个重合放置的Panel中,并添加三个了按钮作为调出对应Panel的媒介,如图1-1所示。 图1-1 简化效果图 按钮的调用代码如下:private void btnOne_Click(object sender, EventArgs e){ panel1.BringToFront();}priva原创 2017-11-08 22:36:34 · 3472 阅读 · 3 评论 -
Krypton控件组简介与使用
前言 项目中涉及到一些控件,之前没有接触过,后来知道都是引用的第三方控件组Krypton,于是从网下载了源码来了解一下,刚开始接触,在这里做个简单的笔记,以备后用。源码 把源码下载(点击下载)下来后也没怎么看,不过通过Krypton了解到这些功能很强大很漂亮的控件都是大牛通过代码设计出来的,敬佩之心油然而生。源码较大,可以直接看生成的bin文件(点击下载),效果展示如图1-1所原创 2017-11-15 16:38:12 · 11638 阅读 · 18 评论 -
查询选定日期范围内相关数据
前言 今天用到一个功能,利用两个DateTimePicker控件来选定一个日期范围作为查询条件,从数据库中取出这段时间内添加的信息。之前也记得用过,不过没有做笔记,不得不又花了些时间才找到,所以现在记录下来,以备不时之需。 效果展示实现代码DateTable dt = new DateTable();//获取DateTimePicker日期DateTim...原创 2017-04-22 17:17:08 · 4395 阅读 · 40 评论 -
登录成功后关闭本窗体打开主窗体
假定你的登录窗体叫:frmLogin,主窗体叫:frmMain,那你打开program.cs里,一般都会有类似于:Application.Run(new frmLogin());把它改成frmLogin login = new frmLogin();login.ShowDialog();if (login.DialogResult.Equals(DialogResult.O原创 2017-01-17 11:23:37 · 3461 阅读 · 18 评论 -
WindowsForm程序-导出DataGridView数据到Excel表
前提 我们需要新建一个Windows Form窗体,并在其中添加一个DataGridView控件,连接数据库读取数据表中的信息返回到DataGridView控件中,相信这一步都会做,我就不演示了,直接给出效果图: 添加引用 我们要实现数据导出到Excel这个功能,就需要引用一个命名空间,如图所示: 在代码中添加命名空间:using Excel = M...原创 2016-12-12 10:39:53 · 12130 阅读 · 18 评论 -
WindowsForm程序的换肤功能
要实现换肤功能,需要引用一个第三方控件:IrisSkin2.dll。点击下载第一步,把IrisSkin2.dll引入到程序中。 为了好找,我们将下载好的IrisSkin2.dll放到我们项目的\bin\Debug文件中。在vs中,右键项目,添加引用,找到IrisSkin2.dll文件并添加。第二步,把IrisSkin2.dll添加到工具箱中。 在工具箱栏,右键-选择项-浏览,找原创 2016-12-11 21:06:17 · 1650 阅读 · 34 评论 -
【验证码一】验证码Demo
前言 牛腩新闻发布系统中的好多小例子都特别喜欢,算是收藏下来,以备后用吧,下面是我测试的验证码Demo。页面图展示代码部分展示html代码<%-- *创建人:琚建飞 *创建时间:2016年10月8日02:54:25 --%> 验证码测试原创 2016-10-08 03:05:03 · 1847 阅读 · 14 评论 -
HTTP 错误 403.14 - Forbidden
原文链接:http://blog.csdn.net/hao134838/article/details/44086019 首次接触牛腩新闻发布系统,这是我们从CS到BS的一个阶梯,就目前我对BS来说算是一无所知,在之前在网上查询了一些关于这方面的知识,在表层对BS有一点认识,但是非常的浅。可是对于牛腩这个BS项目非常的好奇,所以就开始了对视频的学习,在开始就遇到了不知从何下转载 2016-09-26 17:23:13 · 1164 阅读 · 33 评论 -
三层架构
前言 之前很多应用程序的开发都是基于两层结构的,它们的特点是:数据库访问和用户类型判断逻辑放在一起实现;用户界面层直接调用数据访问实现;整个系统功能放在同一项目中实现。它的原理是用户界面层直接与数据库进行交互,还要进行业务规则/合法性校验等工作。两层结构的模型图如下所示: 这种结构存在着很多局限性,比如:一旦用户的需求发生变化,应用程序都需要原创 2016-05-01 20:54:45 · 1369 阅读 · 15 评论 -
.NET平台
前言 “对于刚开始接触C#的初学者来说,了解一下.NET平台是很有必要的。”这是我在看C#的时候常听到的一句话,所以就总结了一下有关.NET平台的一些基础知识。事先声明:以下所述,错误难免,如有误导之处,请大家给予指正。.NET平台 .NET平台又称.NET框架(.NET Framework),是.NET的核心组成部分,提供了一个原创 2016-03-07 18:51:33 · 6262 阅读 · 18 评论 -
三层登陆
前言 对于登陆实例,我们可以将它看一个业务,即登陆业务。UI层负责界面设计显示和采集用户的操作,BL层通过获取UI传来的操作指令,对数据业务逻辑进行处理,处理完成后,返回必要数据,DA层负责数据库的访问。代码结构图UIL代码展示using System;using System.Collections.Generic;u原创 2016-05-05 11:55:29 · 1021 阅读 · 22 评论 -
ADO.net
ADO.NET用于在以往的Microsoft技术中访问数据,它可以让开发人员以一致的方式存取资料来源,就是应用程序可以使用ADO.NET来连接至SQL或者XML,并且获取,处理及更新其中所含的数据。 ADO.NET允许和不同类型的数据源以及数据库进行交互。因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议,一些老式的数据源使用ODBC协议,许多新的数据原创 2016-07-31 16:54:22 · 1321 阅读 · 27 评论 -
【牛腩新闻发布系统】网页计时跳转Demo
牛腩新闻发布系统里面,出错页有一个计时页面跳转的功能。就看着做了一个跳转的小例子。页面图展示:代码展示:<!-- * 创建人:琚建飞 * 创建时间:2016年10月5日13:06:47 --> 网页计时 var i = 20; var inte原创 2016-10-05 13:12:10 · 803 阅读 · 14 评论 -
【验证码二】使用验证码
前言 上篇博客说的是验证码的基础部分,这个就是一个实际的验证码应用。页面图展示(新建的网站)代码展示html部分<%-- *创建人:琚建飞 *创建时间:2016年10月8日02:54:25 --%> 验证码测试 function原创 2016-10-08 04:22:59 · 2373 阅读 · 17 评论 -
【牛腩新闻发布系统】数据表分页显示——真假分页
分页简介 在很多地方,我们都能见到如下图所示的分页标签。因为,很多时候分页的方式浏览数据列表,会很大程度上方便我们的查看,也让我们可以对进度可以有一个估算。在网页中制作分页的浏览格式,一般有两种方式,即真分页和假分页,它们的定义如下:真分页,只从数据库中选择当前页的记录。假分页,事先选择所有的记录后再进行分页。真分页实现第一步:添加AspNe原创 2016-10-09 17:12:51 · 1006 阅读 · 18 评论 -
【牛腩新闻发布系统】知识点总结
1.vs里面的三条斜杠(///),让代码提示更完善。2.按两次tab键,自动完善代码。3.给方法起名字要明确,一眼就能看出来是什么意思。4.using,执行完操作语句后断开与数据库的连接。5.//TODO,类似与书签的作用,起到记忆的功能。6.工具箱中直接拖动保存常用代码段。7.if中的判断语句可以这样写:if(“bytitl原创 2016-10-10 10:14:11 · 983 阅读 · 25 评论 -
【牛腩新闻发布系统】整体总结
前言 从26号开始到9号完成,大概两周。期间,也出现过不少错误,不过静下心来去看,也都是些小问题,也都顺利解决了。在这个项目中感觉学到了很多,毕竟是一个“Web初级开发人员”亲自操刀,算是一个真正的程序员,还是得仰望的。牛腩老师的说话慢悠悠的,讲的很清楚,下意识的想到他肯定是一个胖纸吧(*^_^*)。回过头来看,不得不佩服他,从开始筹划到一步步的实现,简直如行云流水,后面原创 2016-10-10 14:57:18 · 1014 阅读 · 18 评论 -
B/S和C/S
前言 在进行软件开发时,通常会在两种基本结构中进行选择,即C/S架构和B/S架构。C/S架构是Client/Server的简写,也就是客户/服务器的交互;B/S架构是Browser/Server的简写,也就是浏览器/服务器端的交互。下面分别针对这两种架构进行详细的讲解。 C/S架构 C/S架构是早期出现的一种分布式架构,在C/S架构中,多个客户端程序可以同时访问一个数据库服原创 2016-11-23 21:54:20 · 4102 阅读 · 25 评论 -
制作TextBox水印提示
前言 在使用C#的TextBox控件时,有时候会有以下需求:在用户没有输入文字时,TextBox有提示文字,如下图所示,下面将一步步的为大家介绍如何实现此功能。 第一步:创建测试项目 在VS中创建一个Windows窗体应用程序,命名为DemoTest。第二步:创建继承控件 使用Visual C#可以通过继承创建功能强大的自定义控件。通过继承,可以原创 2016-11-27 17:16:30 · 8600 阅读 · 42 评论 -
App.Config配置文件说明
前言 在项目中,为了使代码更加灵活,更加方便调整,我们都在config中添加许多配置信息,一般可以选择.NET自带的配置文件形式app.config或者web项目中的web.config来完成配置工作。在项目中添加配置文件 在WindowsForm应用中,我们可以在新建的WindowsForm应用上右击——添加——新建项——应用程序配置文件。配置文件内容 新添加的配置文件原创 2016-12-01 22:34:01 · 2971 阅读 · 17 评论 -
Form.Designer.cs初识
基本信息 在Windows窗体应用程序中,每一个Form窗体都对应有一个设计器代码文件:Form.Designer.cs文件。它里面的内容时自动生成的。比如说,我在窗体上设置一个frmAddUser_load事件,它就会在里面自动生成一行代码:this.Load += new System.EventHandler(this.frmAddUser_Load);查看方式原创 2016-12-04 17:44:18 · 8629 阅读 · 23 评论 -
DataGridView的增删改
增:dataGridView1.DataSource = dt;//dt为查询数据库返回的DataTable类型信息删(一行): 鼠标选中表中的一行数据后,获取此行数据的一个主键值,并根据它查询数据库,并删除对应的信息。未选中信息,则给出提示。bool mark3 = false;private void dataGridView1_CellClick(objec原创 2016-12-11 20:34:53 · 3927 阅读 · 21 评论 -
C#中的DLL文件
百度百科 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减少程序的体积。一个DLL文件的生成过程新建项目-类库-名称为BuildeADll。新建一个类,名称为Algorithms。在类原创 2017-12-08 20:09:06 · 5791 阅读 · 13 评论 -
正则表达式
检索和替换原创 2017-12-04 23:00:08 · 449 阅读 · 3 评论 -
【C#】var关键字
原文链接:http://blog.csdn.net/allenjy123/article/details/7228964 var概述 var关键字是C#3.0开始新增的特性,称为推断类型(弱类型)。由var声明的变量,编译器会根据上下文来判断你到底是想用什么类型。 我们可以赋予局部变量推断类型var而不是显式类型。var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型转载 2017-08-30 20:45:52 · 1392 阅读 · 10 评论 -
【C#】ref和out关键字
传值和传址 传参有两种方式:传值和传址。 传值调用,意味着方法将获得参数值的一份拷贝。方法可以放心的修改这份拷贝,而不必担心会修改实际传递给他们的形参。 传址调用,实质上也是一种传值调用,不过这个值是地址值。形参是一个地址,它指向的是已经在其他地方分配好内存的空间。实例分析private void btnTestRef_Click(object sender, E原创 2017-08-29 20:51:16 · 756 阅读 · 18 评论