机房收费系统——转换list泛型时,字段名称不对应出现问题

        由于之前对泛型研究了一番,所以就开始尝试着在机房收费系统重构中加入了泛型的使用。但是到了做学生查看余额这个功能的时候,还是按照之前的方法做的,但是在加载数据的时候班级这个框就没有显示出来……然后我就纳闷了。


机房收费系统——转换list泛型时,字段名称不对应出现问题_第1张图片

       我就去看这一段的代码,发现也没什么问题呀,都是在赋值呀,然后我就单步调试,也是走了那一句赋值的代码,但是没有值,为什么其他的都Ok,所以我就很纳闷,因为这个地方我用到了视图,我以为是视图出了问题,然后就去查我的视图。但是我想了一下,视图就是一个虚拟的表,只要建好了,跟直接调数据库表中的东西是一样的,所以应该不是视图的问题,通过排除法,我找到了问题的根源——数据库中的字段!数据库中的这个字段是class,但是我去看我实体中的字段写的是Sclass,因为class是一个关键词,所以只能定义成Sclass,然后这个字段跟数据库中的字段不一样,其他的字段是一样的,而且我让他返回的是泛型,所以只有这个字段会出现问题。

代码:


机房收费系统——转换list泛型时,字段名称不对应出现问题_第2张图片


     视图字段:

机房收费系统——转换list泛型时,字段名称不对应出现问题_第3张图片


      数据库字段:

机房收费系统——转换list泛型时,字段名称不对应出现问题_第4张图片


     然后我就把数据库中的字段改成了和实体一样的,这样就成功了!

     修改数据库字段:

机房收费系统——转换list泛型时,字段名称不对应出现问题_第5张图片


     修改视图字段:

机房收费系统——转换list泛型时,字段名称不对应出现问题_第6张图片


     成功显示:

机房收费系统——转换list泛型时,字段名称不对应出现问题_第7张图片

 

        由于泛型参数(尖括号里的)写的是一个实体类,当执行的时候,会自动获取实体类的属性名,然后Datatable中匹配有没有该名称的字段,有的话就赋值。Datatable中的每一行记录都这样处理。所以我们应该把实体类的属性名和数据库表中的字段名一模一样。

        总结:有的时候我们以为我们对这个新的知识懂了,会用了,其实我们只是没有碰到问题而已,只有多用,多遇到问题,我们才能真正的越来越了解,这就是我们都说的在问题中成长!


你可能感兴趣的:(机房收费系统——转换list泛型时,字段名称不对应出现问题)