代码改变世界

随笔档案-2014年01月

枚举格式化字符串

2014-01-24 11:04 by 假面Wilson, 725 阅读, 收藏, 编辑
摘要: 使用Enum.ToString(string)方法创建新的字符串对象,以表示枚举成员的数值、十六进制值或字符串值。此方法采用某个枚举格式化字符串指定希望返回的值。下表列出了枚举格式化字符串及其返回的值。这些格式说明符不区分大小写。格式字符串结果G 或 g如有可能,将枚举项显示为字符串值,否则显示当前实例的整数值。如果枚举定义中设置了Flags特性,则串联每个有效项的字符串值并将各值用逗号分开。如果未设置Flags特性,则将无效值显示为数字项。下面的示例阐释 G 格式说明符。C#Console.WriteLine(ConsoleColor.Red.ToString("G")) 阅读全文

利用DescriptionAttribute实现枚举字符串

2014-01-24 11:00 by 假面Wilson, 300 阅读, 收藏, 编辑
摘要: 我们知道定义枚举时是不允许带空格等符号的,这样就不利于进行字符串对比。当然可以通过给枚举添加DescriptionAttribute,然后通过fieldinfo读取DescriptionAttribute来获取字符串。以下是例子先定义枚举 /// /// Campaign Mode /// public enum CampaignModeEnum { /// /// Inbound /// [DescriptionAttribute("Inbound")] Inbound, ... 阅读全文

Winform禁止容器内控件获得焦点时改变容器显示范围坐标

2014-01-20 15:18 by 假面Wilson, 634 阅读, 收藏, 编辑
摘要: 在Winform中当容器的可视高度无法显示所有控件并且容器的AutoScroll属性设置为True的情况下,但点击容器内某个未显示完整的控件时,会出现容器的滚动条自动下滚的情况。这是由于控件获得焦点时,容器的ScrollToControl事件被ScrollableControl类自动触发,用于更好的显示焦点控件的内容。我们可以通过重写ScrollToControl事件来处理。以Panel为例子,重写Panel控件。class PanelNoScrollOnFocus : Panel{ protected override System.Drawing.Point ScrollToCont... 阅读全文

SQL Server Index详解

2014-01-15 18:11 by 假面Wilson, 226 阅读, 收藏, 编辑
摘要: 最近在进行数据库调优,对索引的使用和其内部的运转一知半解。在园子里看到一篇相关文章非常好。留下印记以便日常查找。http://www.cnblogs.com/xwdreamer/archive/2012/07/06/2579504.html 阅读全文

DataGridView的单元格控制只能输入数字

2014-01-13 17:34 by 假面Wilson, 9008 阅读, 收藏, 编辑
摘要: 主要是应用DataGridView的EditingControlShowing事件。当单元格进入编辑模式时,可以处理执行该编辑控件的自定义初始化的此事件。public DataGridViewTextBoxEditingControl dgvTxt = null; // 声明 一个 CellEdit private void dgv2_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { dgvTxt = (DataGrid... 阅读全文

.NET中的Action及Func泛型委托

2014-01-09 11:47 by 假面Wilson, 399 阅读, 收藏, 编辑
摘要: 委托,在C#编程中占有极其重要的地位,委托可以将函数封装到委托对象中,并且多个委托可以合并为一个委托,委托对象则可以像普通对象一样被存储、传递,之后在任何时刻进行调用,因此,C#中函数回调机制的实现基本上依赖于委托。C#的delegate关键字用于声明委托,它具有将声明委托类型映射到System.Delegate类的能力,System.Delegate类位于mscorlib.dll中,是.NET的基础核心类之一。使用delegate关键字声明一个委托,实质上创建了System.Delegate的派生类,因此委托类型并非结构体也不是其它类型,它是一个类。一个委托对象也就是一个类的实例。以下是De 阅读全文

C# ?和??运算表达式

2014-01-08 15:32 by 假面Wilson, 572 阅读, 收藏, 编辑
摘要: 1、单问号(?) 作用:用于给变量设初化的时候,给变量(int类型)赋为null值,而不是0。 例子: public int a; //默认值为0 public int ?b; //默认值为null2、双问号(??) 作用:用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过。 例子: public int? b; //默认值为null public int IsNullOrSkip() { return b ?? 0; //返回值为... 阅读全文

SQL Server 大数据量insert into xx select慢的解决方案

2014-01-07 11:32 by 假面Wilson, 12618 阅读, 收藏, 编辑
摘要: 最近项目有个需求,把一张表中的数据根据一定条件增删改到另外一张表。按理说这是个很简单的SQL。可是在实际过程中却出现了超级长时间的执行过程。后来经过排查发现是大数据量insert into xx select造成。原因在于当insert into xx select数据量达到10万级别,同时又有Update和Delete操作表。容易造成锁表。经过研究重构了SQL语句问题解决。具体解决方案如下:1.update 和Delete操作当成一个事务处理2.Insert into前先删除索引3.将需要insert into的数据,拆分成不大于3000条/次去执行。 阅读全文
点击右上角即可分享
微信分享提示