标签:
由于之前对泛型研究了一番,所以就开始尝试着在机房收费系统重构中加入了泛型的使用。但是到了做学生查看余额这个功能的时候,还是按照之前的方法做的,但是在加载数据的时候班级这个框就没有显示出来……然后我就纳闷了。
我就去看这一段的代码,发现也没什么问题呀,都是在赋值呀,然后我就单步调试,也是走了那一句赋值的代码,但是没有值,为什么其他的都Ok,所以我就很纳闷,因为这个地方我用到了视图,我以为是视图出了问题,然后就去查我的视图。但是我想了一下,视图就是一个虚拟的表,只要建好了,跟直接调数据库表中的东西是一样的,所以应该不是视图的问题,通过排除法,我找到了问题的根源——数据库中的字段!数据库中的这个字段是class,但是我去看我实体中的字段写的是Sclass,因为class是一个关键词,所以只能定义成Sclass,然后这个字段跟数据库中的字段不一样,其他的字段是一样的,而且我让他返回的是泛型,所以只有这个字段会出现问题。
代码:
视图字段:
数据库字段:
然后我就把数据库中的字段改成了和实体一样的,这样就成功了!
修改数据库字段:
修改视图字段:
成功显示:
由于泛型参数(尖括号里的)写的是一个实体类,当执行的时候,会自动获取实体类的属性名,然后Datatable中匹配有没有该名称的字段,有的话就赋值。Datatable中的每一行记录都这样处理。所以我们应该把实体类的属性名和数据库表中的字段名一模一样。
总结:有的时候我们以为我们对这个新的知识懂了,会用了,其实我们只是没有碰到问题而已,只有多用,多遇到问题,我们才能真正的越来越了解,这就是我们都说的在问题中成长!
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/xingyu0806/article/details/47667137