随笔分类 -  C#

摘要:由于工作需要,调研过一段时间的工业控制方面的“组态软件”(SCADA)的开发,组态软件常用于自动化工业控制领域,其中包括实时数据采集、数据储存、设备控制和数据展现等功能。其中工控组件的界面展现的实现类似于Windows系统下的各种开发控件,通过各种控件的组装,和硬件协议的集成,就可以实现对相应设备的... 阅读全文
posted @ 2014-12-13 20:09 阿凡卢 阅读(22349) 评论(8) 推荐(9) 编辑
摘要:介绍hessian主页:http://hessian.caucho.com/一个简单的例子学习hessian服务:服务端为Java,客户端为C#。先要准备好C#和Java的第三方类库:http://hessian.caucho.com/Hssiancharp.dllhessian-4.0.37.ja... 阅读全文
posted @ 2014-09-13 16:47 阿凡卢 阅读(8622) 评论(3) 推荐(1) 编辑
摘要:应用程序配置文件(App.config)是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。对于一个config文件: 对config配置文件的读写类:using System... 阅读全文
posted @ 2014-03-13 21:09 阿凡卢 阅读(106088) 评论(4) 推荐(5) 编辑
摘要:log4net解决的问题是在.Net下提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access,Oracle9i,Oracle8i,DB2,SQLite)中。lo... 阅读全文
posted @ 2014-03-05 21:22 阿凡卢 阅读(3869) 评论(0) 推荐(0) 编辑
摘要:功能需求:1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库。2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。这里的Image是System.Drawing.Image。 //Get an image from file Image image = Image.FromFile("D:\\test.jpg"); Bitmap bitmap = new Bitmap("D:\\test.jpg");以下三个函数分别实现了.. 阅读全文
posted @ 2013-10-19 21:53 阿凡卢 阅读(104976) 评论(4) 推荐(12) 编辑
摘要:IP地址与整数之间的转换1、IP地址转换为整数原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个无符号的32位整数。举例:一个ip地址为10.0.3.193每段数字 相对应的二进制数10 000010100 000000003 00000011193 11000001组合起来即为:00001010 00000000 00000011 11000001,转换为10进制就是:167773121,即该IP地址转换后的数字就是它了。C#代码: public static long IpToInt(string ip) ... 阅读全文
posted @ 2013-10-18 20:35 阿凡卢 阅读(27501) 评论(1) 推荐(4) 编辑
摘要:1、整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet;行:Row;单元格Cell。2、NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 3、POI读取Excel有两种格式一个是HSSF,另一个是XSSF。 HSSF和XSSF的区别如下: ... 阅读全文
posted @ 2013-10-17 20:45 阿凡卢 阅读(147958) 评论(37) 推荐(31) 编辑
摘要:节点勾选设置TreeView树中节点勾选要求:1、不选中一个节点,则其所有的子节点都不被选中。2、选中一个节点,则其所有的子节点都被选中。3、当一个节点的所有子节点都没有被选中时,该节点也没有被选中。4、当一个节点的所有子节点中有一个被选中时,则该节点也被选中。代码中对事件参数e.Action的判断... 阅读全文
posted @ 2013-08-28 21:33 阿凡卢 阅读(25635) 评论(1) 推荐(2) 编辑
摘要:一、使用线程的理由1、可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。2、可以使用线程来简化编码。3、可以使用线程来实现并发执行。二、基本知识1、进程与线程:进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。2、前台线程和后台线程:通过Thread类新建线程默认为前台线程。当所有前台线程关闭时,所有的后台线程也会被直接终止,不会抛出异常。3、挂起(Suspend)和唤醒(Resume):由于线程的执行顺序和程序的执行情况不可预知,所以使用挂起和唤醒容易发生死锁的情况,在实际应用中应该尽量少用。4、阻塞线程:Join,阻塞调用线程 阅读全文
posted @ 2013-08-24 23:02 阿凡卢 阅读(232149) 评论(16) 推荐(66) 编辑
摘要:在我们的程序中,经常会有一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作,让耗时操作在后台完成,完成后再进行处理或给出提示,在运行中,也会时时去刷新界面上的进度条等显示,必要时还要控制后台线程中断当前操作。以前,类似的应用会比较麻烦,需要写的代码较多,也很容易出现异常。在.net中,提供了一个组件BackgroundWorker就是专门解决这个问题的。BackgroundWorker类允许在单独的专用线程上运行操作。 耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面(UI)似乎处于停止响应状态。如果需要能进行响应的用户界面,而且面临与这类操作相关 阅读全文
posted @ 2013-07-28 15:15 阿凡卢 阅读(33116) 评论(1) 推荐(1) 编辑
摘要:1.新建一个项目2.给项目添加引用:Microsoft Excel 12.0 Object Library (2007版本)using Excel = Microsoft.Office.Interop.Excel;3.对excel的简单操作:如下代码“添加超链接”等。using System;using System.Collections.Generic;using System.Linq;using System.Text;using Excel = Microsoft.Office.Interop.Excel;namespace ExcelExample{ class Progra... 阅读全文
posted @ 2013-07-27 10:32 阿凡卢 阅读(5582) 评论(1) 推荐(0) 编辑