2018-01-17 String 与StringBuilder、测试过程中可能遇到的问题、用EXCEL生成SQL语句、DevExpress GridControl 动态增加行

第一组:刘聪 String 与StringBuilder

在.NET中String其实是是不可改变对象,一旦创建了一个String对象并给它赋值,它就不可能再改变。看下面的这段代码:


输出:


看起来我们似乎已经把s的值从"1234"改为了"12345678",实际上并没有改变。string s = "1234";是创建了一个String对象它的值是"1234",s指向了它在内存中的地址,s += "5678";是创建了一个新的String对象它的值是"12345678",s指向了新的内存地址。这时在堆中其实存在着两个字符串对象,尽管我们只引用了他们中的一个,但字符串"1234"仍然在内存中驻留。

因此String类型在做字符串的连接操作时,效率是相当低的,并且由于每做一个连接操作,都会在内存中创建一个新的对象,占用了大量的内存空间。

StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。这一点我们平时使用中也许都知道,连接操作频繁的时候建议使用StringBuilder对象。


第二组:暂无


第三组:吴景霞 测试过程中可能遇到的问题

1. 未将对象引用到具体的实例:

可能造成该类型错误的实例和其解决方案有:

(1) 将null赋给string类型的字段:


数据库中或传进来的参数对应字段类型为null时,如果直接赋给string类型的字段,会报错,需要额外加一条判断语句:


这种写法等同于:


(2) 给类赋值的时候没有事先new:

在给para的UISearchPages这个类进行赋值的时候,如果直接使用赋值语句:


会报错,需要实现进行new操作:


2. 没有数据:

(1) 当使用框架自带的SelectById方法时,如果在数据库中找不到该方法,会报错:


(2) 使用SelectOne()操作时,如果数据库中查找不出符合搜索条件的数据,会报错:


可以实现进行判断,如果搜索不到值,则返回null:


3. 找不到特定的列:

某张数据表中,数据库中的字段和Model表中字段相比,有缺失,推荐检错方法是使用SQL语句单独查找该表中的每一个Model表字段,看是否有缺失情况


第四组:傅云 用EXCEL生成SQL语句


第五组:王炳钧 DevExpress GridControl 动态增加行

参考网址: http://blog.csdn.net/jjhua/article/details/7799885

DevExpress XtraGrid 添加新的一行时,数据源DataSource如果是DataTable可以用AddNewRow方法,然后UpdateCurrentRow。但是如果DataSource的来源是List<T>,用AddNewRow是不起作用的,这时候需要将List<T>转换为BindingList<T>,才可以采用AddNewRow。

List<T> to BindingList<T>直接用构造函数就可以:

List<T> source=new List<T>();
BindingList<T> temp=new BindingList<T>(source);

然后通过反射逐个根据源数据行对新加行赋值

gvSelected.AddNewRow();
object destinationRow = gvSelected.GetFocusedRow();
object sourceRow = gvOriginal.GetRow(i);
System.Reflection.PropertyInfo[] propertyCollection = sourceRow.GetType().GetProperties();
 foreach (System.Reflection.PropertyInfo propertyInfo in propertyCollection)
  {
               destinationRow.GetType().GetProperty(propertyInfo.Name).SetValue(
destinationRow, sourceRow.GetType().GetProperty(propertyInfo.Name).GetValue(sourceRow,null), null);
  }
 gvSelected.UpdateCurrentRow();

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,758评论 18 399
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 周六半日游,,,,,,鹫峰森林公园。古树参天,绿意幽幽。山崖边一块巨石,好像随时会有滚落的危险,,,,,,,我跃跃...
    那年520阅读 429评论 0 3
  • 今天,你19岁了,你应变得更加成熟。 也许你经常抱怨,老是把所有的错归结于他人的错,其实你应该反省你自己! 也许你...
    向着阳光奔跑_m阅读 255评论 0 1
  • 好的队友
    陈丽LCC新品上市阅读 106评论 0 0