前言
以下是我在重构过程中,所做的错误锦集的一个笔记,从一个小白慢慢开始调错的内心独白都在此,希望能对处于同样小白的你有所帮助。
正文
1,在充值中B层出现的问题
问题分析:
是说你要调用的对象实例里面不存你要操作的属性或者方法,而在确定了你的对象里面有你要操作的属性或者方法,但是仍然报错,那很可能是你操作的对象变成null了。因为null实际上也是一个对象(Nullable类型),所以它不会提示你“你操作的对象为空”这类的信息,而是对象实例中不存在你要操作的属性或者方法,也就是“未将对象引用设置到对象的实例”。
解决方案:
之前一直在找实例化,new的地方,发现没问题呀。耗费了很长时间,照不出来。头都晕了,请求杨大爷帮助,最后发现是因为没引用。
2,ConvertToList层里出现
解决方案:
做一个判断,if(valu isdecimal){ pi.SetValue(t,Convert.ToString(value),null),即可解决问题
之所以出现这个错,是因为实体层里的字段与数据库表里的字段不相符。所以就会报这个错
3,索引超出范文
4,未提供参数
问题分析:
数据库表中没有StudentNo了,但查询时仍有,删了即可
5,声明标量变量
问题解答:
把它删去即可
6,数据库表名
问题分析:
数据库表明写错
7,问题:判断逻辑出现了错误,但其实代码逻辑没问题,但还是走错。
解决:最后加上了一个trim()解决了
8,出现在工厂层
问题解答:
问题出现在D层,D层没有DAL类的定义上,没有实现接口的定义。
如下:public class PwdDAL:Ipwd
9,找不到dll文件和存在显示转换
解决方案:
虽然知道是没找到dll文件,但多次编译后还是不行。找银平帮忙。最后是因为我D层调错了方法造成的。
问题感悟:道理都清楚,调错仍需要一颗不急不燥的心
10,缺少参数
疑惑:
准备打断点调错,但是在D层不运行就直接出现错误了。这样的情况怎么弄呢?
原因:
因为识别不到sqlparams这个参数
删除用户窗体:
11,DataGridView控件里的问题
问题分析:一看肯定是数据库的原因,但是一看感觉我的狗没有问题呀。调错也看不出来什么问题,因为是一加载就报错。无法调错。后来通过查找终于找到关键所在了。
问题所在:配置文件的问题,加上这个即可。添加集成安全性的字段Integrated Security=True。后来我一想,难道不加这个就会报错了?我尝试了下,换成了添加“User ID=sa,Password=123456;成功
12,删除用户窗体factory层
接口层看了,D层看了,代码看了没毛病呀。结果是建的时候没有直接建接口,而是类,然而这也不行,就算改了也不行。
13,
分析:
路径或者环境变量没有设置正确,csc的时候没有找到你要编译的那个cs文件。
原因:改动东西后,没有重新编译
14,把表里的数据都删除后,发现无论登录哪个,出现的都是不正确
结果发现,是数据库添加数据的时候,前面加了一个空格
15,用dataGridView控件时,把先连接的数据删了,再打开出现错误导致窗体打不开
解决方案:
当窗体打不开时,在其Designer里面查找特的代码。如:这个窗体是在FrmOnWord.Designer.cs里找到已删除的数据,将它删除解决的。
总结
解决错误不是关键,拥有解决错误的思维和经验才是最重要的