![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 85
五维思考
善作者不必善成,善始者不必善终!
展开
-
博客搬家公告
新地址 https://www.cnblogs.com/zhaoshujie/原创 2019-10-30 10:39:07 · 429 阅读 · 1 评论 -
无焦点下获取条码枪返回值的Hook(再次改良版)
针对上一个版本再次改良,上除掉无用代码,新手绝对可以看懂!using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;using System.Reflection; namespace BookLi转载 2015-04-15 21:09:12 · 3668 阅读 · 1 评论 -
读取二代身份证
一般来说winform应用程序解决这个问题起来时很容易的,web应用程序就麻烦一点了。这里我说说我的解决思路:一、你必要有联机型居民身份证阅读器一个(带驱动光盘),这里我用的是精伦电子公司的iDR200,并有这个阅读器的开发接口说明。二、新建一个winform控件项目ReadCardControl,添加一个主类ReadCard1、 声明dll入口 [DllImp转载 2015-04-13 16:52:30 · 3761 阅读 · 0 评论 -
Winform开发框架之读卡器和条码扫描枪的数据接收处理
在我们开发一些项目的时候,一般需要一些外围的设备进行数据处理,如ID/IC读卡器获取卡号、激光条码扫描枪、USB摄像头、USB方式的小票据打印机(POS打印机)、USB来电录音盒、普通打印机等一系列附属设备。借助这些设备,可以使我们的业务流程更严谨,输入数据更方便,或者能够一些特殊的数据等功能。本文主要介绍其中的ID读卡器(IC读卡器)快速读取卡号,以及实用激光条码枪的条码扫描录入功能,后面的一些转载 2015-04-13 12:37:13 · 7013 阅读 · 2 评论 -
C#访问和操作MYSQL数据库
这里介绍下比较简单的方式,引用MySql.Data.dll然后添加一个MySqlHelper类来对MySql数据库进行访问和操作。 1.将MySql.Data.dll引用到你的项目中下载地址:MySql.Data.rar添加引用后在你的数据库操作类(如MySqlHelper.cs)中添加引用声明using MySql.Data;using MySql.D转载 2015-04-07 06:19:17 · 464 阅读 · 0 评论 -
C# 基于MySQL的数据层基类(MySQLHelper)
这里介绍下比较简单的方式,引用MySql.Data.dll然后添加一个MySqlHelper类来对MySql数据库进行访问和操作。 1.将MySql.Data.dll引用到你的项目中下载地址:MySql.Data.rar添加引用后在你的数据库操作类(如MySqlHelper.cs)中添加引用声明using MySql.Data;using MySql.D转载 2015-04-12 10:01:02 · 8075 阅读 · 1 评论 -
调侃面向对象编程的23种设计模式
1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向转载 2015-04-07 22:18:49 · 557 阅读 · 0 评论 -
C#打印条码的几种方式
总结一下常见的条码打印方法,其实打条码的方式很多,大概有以下几种:1.斑马打印软件制作好模板,保存为.prn格式的文件,文件格式大致如下^XA^LH30,0^JMA^XZ~DG000.GRF,04096,128,,::::::::::::::::::rQF0,:::,::::::::~DG001.GRF,04096,128,,:::::::rQF0,:::a,:::::转载 2015-04-04 12:17:53 · 3532 阅读 · 0 评论 -
C#利用Zxing.net生成条形码和二维码并实现打印的功能
开篇:zxing.net是.net平台下编解条形码和二维码的工具。 下载地址:http://pan.baidu.com/s/1kTr3VufStep1:使用VS2010新建一个窗体程序项目:Step2:添加三个类:分别是BarCodeClass.cs、DocementBase.cs、imageDocument.cs。(下一步贴出这些类的代码);;;;转载 2015-04-04 12:17:43 · 4803 阅读 · 0 评论 -
C# - JSON详解
最近在做微信开发时用到了一些json的问题,就是把微信返回回来的一些json数据做一些处理,但是之前json掌握的不好,浪费了好多时间在查找一些json有关的转换问题,我所知道的方法只有把json序列化和反序列化一下,但是太麻烦了我觉得,所以就在找一些更简单又方便使用的方法。也许这个会有用吧,所以先放到这以后能用到的。原文出处:http://www.cnblogs.com/mcgrady/ar转载 2015-03-14 14:59:12 · 591 阅读 · 0 评论 -
C# 跨线程调用控件
在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应。 同时我们又需要在工作线程中更新UI界面上的控件,下面介绍几种常用的方法 阅读目录线程间操作无效第一种办法:禁止编译器对跨线程访问做检查第二种办法: 使用delegate和invoke来从其他线程中调用控件第三种办法: 使用delegate和BeginInvoke来从其他线程中控制控转载 2015-03-12 21:53:11 · 429 阅读 · 0 评论 -
C#基础概念
1. 面向对象的思想主要包括:继承 多态 封装● 封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。● 继承:子类拥有父类的所有数据和操作。● 多态:一个程序中同名的不同方法共存的情况。 有两种形式的多态– 重载与重写。 2. 什么是装箱和拆箱装箱(bo转载 2015-03-12 21:27:46 · 469 阅读 · 0 评论 -
设计模式-窗体基类模板方法定义
模板方法模式(Template Method Pattern)模版方法中的方法可以分为两大类:模版方法(Template Method)和基本方法(Primitive Method)。 a.模版方法 一个模版方法是定义在抽象类中的,把基本操作方法组合在一起形成一个总算法或一个总行为的方法。这个模版方法一般会在抽象类中定义,并由子类不加以修改地完全继承下来。 b.基本方转载 2015-03-12 18:59:05 · 838 阅读 · 0 评论 -
开源.NET界面库
一、十大开源的.NET用户界面框架选择一款合适的GUI框架是.NET开发中比较重要但又很棘手的问题,因为用户界面相当于一款应用的"门面",直接面向用户。好的UI更能吸引用户,有时甚至成为决定一款应用成败的关键。下面小编整理出十大应用最广泛.NET开源用户界面框架,希望.NET开发人员以后选择GUI框架时不再犯难。Windows.FormsWindows.Forms是微软的.转载 2017-02-08 09:05:24 · 5840 阅读 · 0 评论 -
C#命名规则和风格
1.文件命名组织1-1文件命名1.文件名遵从Pascal命名法,无特殊情况,扩展名小写。2.使用统一而又通用的文件扩展名: C# 类 .cs1-2文件注释1. 在每个文件头必须包含以下注释说明1 在每个文件头必须包含以下注释说明 /*----------------------------------------------------------转载 2017-03-26 15:23:50 · 1758 阅读 · 1 评论 -
C#读取Excel五种方式的体会
原地址:http://blog.csdn.net/dapengbusi/article/details/38117817http://blog.csdn.net/dapengbusi/article/details/38118679http://blog.csdn.net/dapengbusi/article/details/38118997转载 2018-09-02 11:27:12 · 1233 阅读 · 0 评论 -
C#语法糖(Csharp Syntactic sugar)
目录一、C#语法糖大汇总1. 经过简化的Property2. 经过两次变异的委托写法3. 集合类的声明4. 集合类各个项的操作5. using == try finally6. 可爱的var7. 问号的演变8. 类型实例化的语法糖9. 传说中的扩展方法10.使用匿名类二、C#之6.0语法糖剖析2.1 自动属性默认初始化2.2...转载 2018-09-04 14:03:14 · 1866 阅读 · 0 评论 -
C# WinForm文章收集
DataGridView 使用方法集锦 https://blog.csdn.net/zhaoyu_m69/article/details/70307934关于DataGridView的一些操作(很全,绝对够用) https://blog.csdn.net/zww0815/article/details/51275225DataGridView绑定数据源的几种常见方式 https://www.cnb...转载 2018-04-30 17:12:57 · 282 阅读 · 0 评论 -
C#面向对象设计的七大原则
本文我们要谈的七大原则,即:单一职责,里氏替换,迪米特法则,依赖倒转,接口隔离,合成/聚合原则,开放-封闭 。1. 开闭原则(Open-Closed Principle, OCP)定义:软件实体应当对扩展开放,对修改关闭。这句话说得有点专业,更通俗一点讲,也就是:软件系统中包含的各种组件,例如模块(Modules)、类(Classes)以及功能(Functions)等等,应该在不修改现转载 2018-02-04 12:19:05 · 3908 阅读 · 0 评论 -
面向对象七大设计原则的综合阐述
七大原则总脉络图: 注:1,2,3,4,5显示的重要等级 常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充。 下面就是面向对象七个原则的一一解析一、开闭原则 1. 开闭原则定义 :一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的转载 2018-02-03 10:22:09 · 381 阅读 · 0 评论 -
面向对象的七种设计原则
原则一:单一职责原则(SRP:Single responsibility principle)核心:解耦和增强内聚性(高内聚,低耦合)描述:类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,有可能中止另一个功能,这时就需要新一轮的测试来避免可能出现的问题。原则二:开放封闭原则(OCP:Open Closed Princ转载 2018-02-02 21:37:51 · 272 阅读 · 0 评论 -
面向对象三大基本特性,五大基本原则
透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础.三大特性是:封装、继承、多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是转载 2018-02-02 16:39:06 · 190 阅读 · 0 评论 -
C# BindingSource
1.引言BindingSource组件是数据源和控件间的一座桥,同时提供了大量的API和Event供我们使用。使用这些API我们可以将Code与各种具体类型数据源进行解耦;使用这些Event我们可以洞察数据的变化。2.简单绑定 DataTable myTable = myTableAdapter.GetData();//创建Table BindingSource myB转载 2018-01-31 13:34:19 · 1207 阅读 · 0 评论 -
C# TextBox猜想输入和历史记录输入
什么是猜想输入 当我们在使用查询应用时,输入某个关键字后文本框下面就会自动弹出跟此关键字相附的词组供我们选择,为我们节省了输入的时间,这就是猜想输入,例如:百度,谷歌,等等,如下图: 如上图所示,使用WinForm的TextBox实现了这样的效果,主要借助于TextBox的AutoCompleteMode和AutoC转载 2017-08-05 19:42:48 · 962 阅读 · 0 评论 -
SQL SERVER与C#数据类型对照表
分类SQL SERVER类型类型说明C#类型精确数字bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。Int64int从 -2^31 (-2,原创 2017-08-27 20:11:31 · 346 阅读 · 0 评论 -
C#操作SQL Server数据库
1、概述ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤:第一,使用SqlConnection对象连接数据库;第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用;第三,对SQL或存储过程执行后返回的“结果”进行操作。对返回“结果”的操作可以分为两类:一是用SqlDataReader直接一行一行的读取数据集;二是DataSet联合S转载 2017-07-12 13:59:42 · 327 阅读 · 0 评论 -
C#使用Ado.Net读写数据库
1.使用DataReader方式读取资料 [csharp] view plain copyString connString = ConfigurationManager.ConnectionStrings["astt"].ConnectionString; //如果数据库连接字符串有加密,可以经过解密后重新获得连接字符串转载 2017-04-16 21:34:20 · 729 阅读 · 0 评论 -
红外条码扫描器的另类使用C#版
3年前写了一篇《USB口的红外条形码扫描器的另类使用》,不过相关代码是VB编写,在这几年之间,有许多网友提出需要C#版的,起初还以为由VB修改C#应该很容易,最近研究了一下,发现C#和VB调用API的机制还是有所不同的,在迁移的过程中还是会遇到不少问题,所以我专门抽时间做了一个基于C#的程序。 【目前的条形码扫描器有点类似外接键盘(其实从消息传送上它就相当于一个键盘),把输入焦点转载 2015-03-11 12:53:56 · 3625 阅读 · 0 评论 -
C#三层架构登陆实例
很早之前,就听说过三层结构了。当时只知道 三层结构 是把 系统的 界面 跟 数据库操作等不相关的程序分别开来。原来这么简单的实现,确实传说中的 三层结构啊。 首先,先来看一下是哪三层。表示层(UI,User Interface),业务逻辑层(BLL BusinessLogicLayer),数据访问层(DAL Data Access Layer)。三层的划分是物理上的划分。转载 2015-03-10 20:17:54 · 604 阅读 · 0 评论 -
利用C#的反射机制动态调用DLL类库
1、使用Assembly类定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。2、使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。使用Type的GetMethods或GetMethod方法来调用特定的方法。一、创建用于反射调用的DLL u转载 2015-03-07 17:49:45 · 3456 阅读 · 0 评论 -
C# 实现子窗体控制父窗体的方法
我们来实现这样一个功能:当父窗体打开一个子窗体时隐藏父窗体的Panel,而当子窗体关闭时让Panel显示。实现的主要思路是创建一个子窗体的父类并在类中声明一个委托,当父窗体调用子窗体时绑定显示Panel的方法。如下:1.新建一个项目,分别添加MainForm、BaseChildForm两个窗体,其中MainForm的IsMdiContainer设为True。2.在BaseC转载 2015-03-07 00:28:21 · 2135 阅读 · 0 评论 -
创建业务逻辑层
简介在教程一中创建的数据访问层 (DAL) 将数据访问逻辑与表示逻辑清晰地分离开来。然而,尽管 DAL 从表示层中清晰地分离出数据访问层细节,它却并没有实施任何可能采用的业务规则。例如,我们想让我们的应用程序在 Discontinued 字段设为 1 时禁止对 Products 表的 CategoryID 或 SupplierID 字段的修改,还有,我们可能想实施一些资历规则以便禁止发生这转载 2015-03-07 17:56:06 · 760 阅读 · 0 评论 -
修改Visual Studio项目中程序集信息默认公司名称的两种方法
这个公司名就是安装系统时注册的单位名称。可以通过修改注册表修改 Windows 系统的注册信息,方法如下:1、在开始“运行”中输入regedit,打开注册表编辑器。2、依次展开:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion 3、找到右边的RegisteredOrganization(注册的单位名称),点右转载 2015-03-16 23:36:36 · 1249 阅读 · 0 评论 -
C#.Net 持久化对象为XML文件
MyXmlSerializer.cs 文件内容:/// /// 持久化对象为XML文件 /// public class MyXmlSerializer{ /// /// 序列化对象 /// /// 对象 /// 持久化对象文件 /// public static bool Serialize(object o,转载 2015-03-07 10:32:05 · 454 阅读 · 0 评论 -
C#生成和识别二维码
用到外部一个DLL文件(ThoughtWorks.QRCode.dll),看效果生成截图识别截图生成二维码后右键菜单可以保存二维码图片,然后可以到识别模式下进行识别,当然生成后可以用手机扫描识别出来,或者用手机直接扫描以上两张图也能看到识别后的结果。使用方法,在解决方案中引用上面那个dll文件,引入命名空间using ThoughtWorks.QRC转载 2015-03-26 06:11:25 · 5631 阅读 · 0 评论 -
VS2013常用快捷键
1.回到上一个光标位置/前进到下一个光标位置1)回到上一个光标位置:使用组合键“Ctrl+-”;2)前进到下一个光标位置:“Ctrl+Shift+-”。2.复制/剪切/删除整行代码1)如果你想复制一整行代码,只需将光标移至该行,再使用组合键“Ctrl+C”来完成复制操作,而无需选择整行。2)如果你想剪切一整行代码,只需将光标移至该行,再使用组合键“Ctrl+X”来完成剪转载 2015-03-06 07:21:50 · 411 阅读 · 0 评论 -
Chart Controls 简介与下载
虽然博客园已有人介绍过了,还是忍不住介绍一下微软这套免费又功能强大的图表控件「Microsoft Chart Controls for Microsoft .NET Framework 3.5」。本帖并提供相关软件、文件、官方示例的下载点。微软在收购了 Dundas 这家优秀的图表组件公司后,日前释出了功能相当强大,而且完全免费的图表组件,名为「Microsoft Chart Contro转载 2015-03-15 08:48:22 · 620 阅读 · 0 评论 -
.NET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能
IrisSkin2.dll是一款很不错的免费皮肤控件,利用它可以轻松的实现winForm窗体换肤!网上很多朋友说在VS2010中不能使用IrisSkin2.dll,我这里提供一个取巧的办法。IrisSkin2.dll目前只能在.NET Faremwork 4.0以及之前的版本使用,所以大家在VS2010中可以将自己的项目框架设置为.NET .NET Faremwork 4.0,具体转载 2015-03-19 14:19:58 · 1689 阅读 · 0 评论 -
C#创建基本图表(Chart Controls)
在.NET环境下微软提供了强大了图表控件,并给多了很多实例,关于图表的基本元素如下:并且MSDN给出了创建图表的示例步骤,原文地址:http://msdn.microsoft.com/en-us/library/dd489237.aspx在这里,我仅作为自己理解的,并实践的,以中文方式写出步骤,未免出错,还请参照MSDN。添加一个图表控件到应用程序: 1,在设计视图转载 2015-03-15 06:06:58 · 1686 阅读 · 0 评论 -
『水晶报表』实现打印
在我们开发各种工具软件的时候,我们不可避免的会遇到打印的问题。而使用.NET开发打印功能,水晶报表或许会是一个十分不象错的选择!一般步骤:准备好想要打印的数据源;制作用于规定打印结果样式的模板文件(.rpt);创建用于打印的执行窗口Form1,并在其中放置一个CrystalReportViewer (第三方控件,来自SAP)创建打印按键所在的Form2;获取系统所能使用的打印机;转载 2015-03-14 21:50:47 · 1985 阅读 · 1 评论