一、问题:
汇总方式有两种,CheckBox的情况有两种。如图
一开始的时候,原写代码的人是写了四段差不多的代码(主要不同点是在SQL的语句,因为要跟数据库进行结合查询),将这四种情况都写出来。但是今天老大叫我新增加两个CheckBox,形成这样的功能。
如果是按照之前的写法,三个CheckBox加上两种汇总方式,就变成了16种情况需要写出来。这样的代码十分累赘,不现实,更加不便于后期维护(如在增加一个CheckBox就变成了2的4次方再乘以2中情况)。
二、解决办法
关键点是在SQL语句中:将用到的数据都查出来,在Where条件中用{0}{1},最后进行使用类似StringBuilder.AppendFormat(“{0}”,this.chkCancelColor.Checked ? "" : "AND a.ColorPosition <> '255'”)进行替换。
转载:https://www.cnblogs.com/mrxy/p/8057657.html
以下文章来自明日科技出版的《零基础学C#》,转载请注明出处!!!
StringBulider与String的区别
string本身是不可改变的,它只能赋值一次,每一次内容发生改变,都会生成一个新的对象,然后原有的对象引用新的对象,而每一次生成新对象都会对系统性能产生影响,这会降低.NET编译器的工作效率。
而StringBuilder类则不同,每次操作都是对自身对象进行操作,而不是生成新的对象,其所占空间会随着内容的增加而扩充,这样,在做大量的修改操作时,不会因生成大量匿名对象而影响系统性能。
技巧:当程序中需要大量的对某个字符串进行操作时,应该考虑应用StringBuilder类处理该字符串,其设计目的就是针对大量string操作的一种改进办法,避免产生太多的临时对象;而当程序中只是对某个字符串进行一次或几次操作时,采用string类即可