一、网络上的普通说法
1、ViewState 对象为Null。
2、DateSet 空。
3、sql语句或Datebase的缘由招致DataReader空。
4、声明字符串变量时未赋空值就应用变量。
5、未用new初始化对象。
6、Session对象为空。
7、对控件赋文本值时,值不存在。
8、运用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。
9、运用FindControl时,控件不存在却没有做预处置。
10、反复定义形成未将对象援用设置到对象的实例错误.
二、 (1)所设置的变量为空值或没有取到值,普通呈现在传送参数的时分呈现这个问题,也会在运用DataGrid或gridview或datalist等数据控件时呈现.
(2)控件称号与codebehind里面的没有对应
(3)未用new初始化对象
(4)在程序中所援用的控件不存在
处理办法:
(1)运用try..catch...finally捕捉错误,或直接用response.write()输出所取的变量值
(2)查看代码中能否存在未初始化的变量
三、SqlConnection.Open 未将对象援用设置到对象的实例
在运用VS2003开发 ASP.NET程序时分 有时分操作 SqlConnection对象的Open()办法时分会呈现
未将对象援用设置到对象的实例。
阐明: 执行当前 Web 恳求期间,呈现未处置的异常。请检查堆栈跟踪信息,以理解有关该错误以及代码中招致错误的出处的细致信息。
异常细致信息: System.NullReferenceException: 未将对象援用设置到对象的实例。
源错误:
。。。。
conn.Open();
......
跟踪调试也肯定能够肯定 对conn停止new 操作 但是程序经常在这个中央报错,但是有时分重启效劳器或者重启IIS有能正常运用了。 怎样调试也找不到问题 那么这个时分可能是 你本机上装置的.NET FRAMEEWORK 框架有问题,可能没有没有装置SP1.1补丁
需求打NET FRAMEEWORK1.1 SP1的补丁,到微软官方网站下载装置后就好了。
四、普通呈现NullReferenceException异常的我个人总结有以下状况:
1、对象所在的命名空间没有援用
2、对象没有实例化
3、呈现异常,实例化失败对象为 null
五、IIS 扛不住的时分,也会呈现上面的错误。
当应用程序的用户访问量超越它能接受的范围之后,就会出错。
改善你的程序,运用缓存,尽量减少与数据库交互的次数。
六、我碰到的问题是,无意重置了DataSet援用,后呈现这个问题,请大家好好查查本人的代码,是不是在其他中央重新援用了,在我的程序中DataSet被设置成全局对象。
七、当你发现一切的办法不行时,打上.netframework的补丁
八、我呈现这个错误,仅仅由于网站里面DAL的dll文件失效,业务层实例化不了IDAL里面的对象
但也糜费了一下午的时间在调代码上
九、为每个可疑的中央添加监视,起初以为是sql语句写错了,查了几遍,换用sql语句还是报同样的错误。依据google出来的结果,提到对象重定义会惹起这样的结果。依据这一提示,交换掉页面级全局对象,总算搞定了。
class DBOper{
/*结构函数没有函数体
*
*c#写的 一系列对数据库操作办法
*
*
}
最初为了省事,尽量少声明对象,只在全局声明了一个private DBOper db=new DBOper(),在不同办法里面调用该对象的办法,以防止为其定义而形成内存糜费。后来代码重构,在编译的时分并未报错。但是当运转的时分,就呈现” NullReferenceException: 未将对象援用设置到对象的实例“。结果就因它而搞了几个小时。后来依据google的结果,将不同办法中运用到的DBOper对象逐个重定义为部分变量(一个办法里面只定义一个DBOper对象,屡次调用其办法均正常),去掉全局的private变量。再运转的时分就正常了。
至于为什么将自定义的对象提成为class为private在不同的办法里面运用后而呈现这样的问题,如今还不是很分明.........................