未将对象引用设置到对象的实例--可能出现的问题总结

1、网络上的通常说法
一、ViewState 对象为Null。
二、DateSet 空。
三、sql语句或Datebase的缘由致使DataReader空。
四、声明字符串变量时未赋空值就应用变量。
五、未用new初始化对象。
六、Session对象为空。
七、对控件赋文本值时,值不存在。
八、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值sql


九、使用FindControl时,控件不存在却没有作预处理。
十、重复定义形成未将对象引用设置到对象的实例错误. 数据库

2、c#

      (1)所设置的变量为空值或没有取到值,通常出如今传递参数的时候出现这个问缓存

题,也会在使用DataGrid或gridview或datalist等数据控件时出现.服务器

(2)控件名称与codebehind里面的没有对应网络

(3)未用new初始化对象框架

(4)在程序中所引用的控件不存在函数

解决方法:网站

(1)使用try..catch...finally捕捉错误,或直接用response.write()输出所取的变google

量值

(2)查看代码中是否存在未初始化的变量

3、
SqlConnection.Open   未将对象引用设置到对象的实例

在使用VS2003开发 ASP.NET程序时候 有时候操做 SqlConnection对象的Open()

方法时候会出现

未将对象引用设置到对象的实例。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了

解有关该错误以及代码中致使错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实

例。

源错误:
。。。。

conn.Open();

......

跟踪调试也确定能够肯定 对conn进行new 操做 可是程序常常在这个地方报错,

可是有时候重启服务器或者重启IIS有能正常使用了。 怎么调试也找不到问题  那

么这个时候多是 你本机上安装的.NET FRAMEEWORK 框架有问题,可能没有

没有安装SP1.1补丁 
须要打NET FRAMEEWORK1.1 SP1的补丁,到微软官方网站下载安装后就行了

4、
通常出现NullReferenceException异常的我我的总结有如下状况:
一、对象所在的命名空间没有引用
二、对象没有实例化
三、出现异常,实例化失败对象为 null

5、
IIS 扛不住的时候,也会出现上面的错误。
当应用程序的用户访问量超过它能承受的范围以后,就会出错。
改善你的程序,使用缓存,尽可能减小与数据库交互的次数。

6、
我碰到的问题是,无心重置了DataSet引用,后出现这个问题,请你们好好查查

本身的代码,是否是在其余地方从新引用了,在个人程序中DataSet被设置成全

局对象。

7、
当你发现全部的方法不行时,打上.netframework的补丁

8、
我出现这个错误,仅仅由于网站里面DAL的dll文件失效,业务层实例化不了IDAL

里面的对象
但也浪费了一下午的时间在调代码上

9、
为每一个可疑的地方添加监视,起初觉得是sql语句写错了,查了几遍,换用sql语句

仍是报一样的错误。根据google出来的结果,提到对象重定义会引发这样的结果

。根据这一提示,替换掉页面级全局对象,总算搞定了。
       class DBOper{
            /*构造函数没有函数体
             *
             *c#写的 一系列对数据库操做方法
             *
             *
       }
       最初为了省事,尽可能少声明对象,只在全局声明了一个private DBOper

db=new DBOper(),在不一样方法里面调用该对象的方法,以免为其定义而形成

内存浪费。后来代码重构,在编译的时候并未报错。可是当运行的时候,就出现

” NullReferenceException: 未将对象引用设置到对象的实例“。结果就因它而

搞了几个小时。后来根据google的结果,将不一样方法中使用到的DBOper对象一

一重定义为局部变量(一个方法里面只定义一个DBOper对象,屡次调用其方法

均正常),去掉全局的private变量。再运行的时候就正常了。

相关文章
相关标签/搜索