随笔分类 - C#
摘要:自己写的winform窗体自适应大小代码,代码比较独立,很适合贴来贴去不会对原有程序造成影响,可以直接继承此类或者把代码复制到自己的代码里面直接使用借鉴了网上的一些资料,最后采用重写WndProc方法,这样可以兼顾窗体拖拽调整窗体大小和最大化、最小化方法,而且代码比较简练,代码侵入性较小using System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;using System.Drawing;namespace LzRabbit{ public class AutoResi...
阅读全文
摘要:自用的SQLHelper和MySqlHelper,除一些通用方法外,封装了一些很实用的批量操作方法,简单介绍下
SqlHelper
ExecuteEmptyDataTable
获取空表结构,主要用于需要构造DataTable进行大批量数据插入时使用
BulkInsert
大批量数据插入,使用SqlBulkCopy进行大批量数据导入,仅提供了DataTable方式,需要DataReader的请自行重载
BatchDelete、BatchUpdate
批量数据更新、插入,使用SqlDataAdapter实现,需要进行较大数据量更新、插入时可以使用此方法,性能还不错BatchUpdate,BatchDelete:分批次批量删除、更新数据,此方法应用场景较少,用于需要删除、更新大量数据的同时不造成数据库阻塞且不影响数据库订阅、复制延时等
ExecutePageDataTable
通用的分页方法,提供了CTE表达式的支持
SqlHelperExtension.cs(ExecuteObject、ExecuteObjects)
提供了泛型获取对象方法支持,依赖依赖Aut
阅读全文
摘要:最近开始使用WebAPI,上手很容易,然后有些疑惑 1.WebAPI默认返回什么数据类型,json还是xml? 2.怎么修改WebAPI的返回数据类型,我用IE浏览器请求返回的数据都是JSON格式的,用Firefox和Chrome返回数据格式是XML,然后自己用HttpWebRequest请求返回的是JSON格式的,我就纳闷了,咋同样的程序、同样的配置文件,输出数据格式为啥还带不一样的,就算你默认输出json或者xml都可以理解,咋还不同浏览器,输出格式不同,经过一番研总算搞懂了原因 经过测试发现使用IE浏览器返回的数据是json,而使用Firefox和Chrome返回的则为xml,...
阅读全文
摘要:关于依赖注入 控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。 控制反转还有一个名字叫做依赖注入(Dependency Injection),简称DI。相对而言对于.Net开发者来说听到得更多的是依赖注入这个名词。实现依赖注入的框架有很多,如Spring.Net,Unity,Ninject等等,基本上...
阅读全文
摘要:string str1 =Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。//备注 按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:\mySubDirectory”)。string str3=Directory.GetC
阅读全文
摘要:本文主要用实例代码演示如何创建自己的Quartz.Net 2.0 Windwos服务,并使用配置文件实现任务调度,配有完整的源码展示和下载
阅读全文
摘要:Quartz.NET 2.0 可以很方便的通过配置的xml文件方式实现灵活的任务调度配置(1.0版本就已经支持了,只是配置文件格式有些变化)
默认的quartz任务配置文件为quartz_jobs.xml,在quartz服务的根目录下,可以通过quartz.config中quartz.plugin.xml.fileNames = ~/quartz_jobs.xml进行设置
quartz_jobs.xml配置节点介绍
job-scheduling-data 为跟节点不再解释
processing-directives这个节点官方给的示例中就存在,干啥用的没有深入了解,保持默认配置即可
schedule任务调度集合可以配置多个但貌似只有第一个的配置起作用,如何让多个schedule同时起作用希望知道的童鞋告诉下,不胜感激。所有的job和trigger均放在这个节点下面
job 任务,其实就是1.x版本中的,这个节点是用来定义每个具体的任务的,多个任务请创建多个job节点即可
阅读全文
摘要:Quartz.NET 2.0 2012年4月9日发布了Released
http://quartznet.sourceforge.net/
日常开发来说,相对于1.0版,2.0版在使用上有以下几点需要注意的变化
变化一 比1.0多引用了C5.dll
C5.dll 一个C#和其他CLI语言的泛型集合类。.Net2.0及以上才可以使用。简介地址:http://www.itu.dk/research/c5/
变化二 quartz.config有细微变化
quartz.plugin.xml.type由1.x的Quartz.Plugin.Xml.JobInitializationPlugin, Quartz变为了2.0中的Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz
2.0版本新增了一行配置quartz.scheduler.exporter.channelName = httpQuart
阅读全文
摘要:Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。
2012年4月9日 Quartz.NET 2.0发布了Released版,对应于Java Quartz的2.1版本,下载地址 http://quartznet.sourceforge.net/download.html 。整个版本相对于1.0版本进行了大量的修改,单元测试的代码更友好(重构了更多的接口),API是基于泛型和.NET 3.5 SP1之后的特性,例如DateTimeOffset。这是Quartz.NET 有史以来最大的、最值得兴奋的一个版本。
阅读全文
摘要:最近公司的项目需要使用FTP进行文件同步操作,原系统里有一个FTP操作类,不过封装的很不好(反正我看着很别扭),干脆自己按照自己的风格重新写了一个。这里主要参考了园子里南疯封装的clsFTP类,个人感觉这个类功能比较强大,个人用不到那么多功能所以按照自己的使用习惯重写了个简化的类。
只实现了基本的上传、下载、判断文件是否存在及我实际应用中最重要的根据选择的远程文件地址自动创建相关目录功能
阅读全文
摘要:好了到现在SQL Server数据库时间问题解决了,突然又想起了系统中有个啥1970年1月1日的时间。那这个时间又是啥来来历呢,怀着好奇宝宝的心理我有在网上查阅了一番得到如下解释:
1.可以简单的这样认为:UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。这个解释是懒人最爱^_^
2.这个比较科学
最初计算机操作系统是32位,而时间也是用32位表示。32位能表示的最大值是2147483647。另外1年365天的总秒数是31536000,2147483647/31536000 = 68.1,也就是说32位能表示的最长时间是68年,而实际上到2038年01月19日03时14分07秒,便会到达最大时间,过了这个时间点,所有32位操作系统时间便会变为10000000 00000000 00000000 00000000,也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。
阅读全文