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

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

一、网络上的一般说法

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 操作 可是程序常常在这个地方报错,可是有时候重新启动server或者重新启动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在不同的方法里面使用后而出现这种问题,如今还不是非常清楚…………………….

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119126.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • excel右键不出菜单_哈希校验码下载

    excel右键不出菜单_哈希校验码下载推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的SQL成神之路PDF,终于开源了最近遇到这么一件事:我在官网下载软件安装包,准备安装的时候被提示说是有病毒,不让安装。当时我就纳闷了,这官网下载的文件怎么会有病毒呢?于是我找到官网标注的文件Hash…

    2022年9月4日
    3
  • 自定义oncontextmenu[通俗易懂]

    自定义oncontextmenu[通俗易懂]<!doctypehtml><html><head><metacharset=”utf-8″><metaname=”author”content=”智能社-zhinengshe.com”/><metaname=”copyright”content=”智能社-zhinengshe.com”…

    2022年8月14日
    7
  • VC编程实现色彩空间XYZ与LAB相互转换[通俗易懂]

    VC编程实现色彩空间XYZ与LAB相互转换[通俗易懂]VC编程实现色彩空间XYZ与LAB相互转换文章VC编程实现色彩空间RGB与XYZ相互转换已经介绍了RGB与XYZ色彩空间的转换算法以及实际的VC源代码,在上一篇文章已经提到,在PhotoShop中经常使用有RGB(红色、绿色、蓝色)、CMYK(青色、洋红、黄色、黑色)、HSB(色相、饱和度、亮度)和Lab4中色彩空间。我们用到XYZ色彩空间的目的是进行RGB与LAB色彩空

    2022年6月19日
    39
  • Android 代码混淆机制

    Android 代码混淆机制Android代码混淆机制由于Android项目大部分用的java语言,而java属于高层抽象语言,易于反编译、反汇编,其编译后的程序包包含了大量的源代码变量、函数名、数据结构等信息,根据其编译打包后的APK文件,可以非常容易的得到近乎源代码质量的反编译代码。如果不加混淆,相当于直接将源代码拱手送人,内容严密的app权限审核可以说是形同虚设。如果大家想避免源代码泄漏后重新修改策划而额外增加的工

    2022年5月30日
    75
  • java如何输入字符串_JAVA中怎样输入字符串「建议收藏」

    java如何输入字符串_JAVA中怎样输入字符串「建议收藏」https://zhidao.baidu.com/question/344967589.htmljava.lang.String.charAt()方法返回指定索引处的char值。http://www.yiibai.com/javalang/string_charat.html(toLowerCase)toUpperCase的意思是将所有的英文字符转换为大写字母,如:Stringcc=“a…

    2022年7月16日
    13
  • unity串口 连接多个串口崩溃_hdmi视频矩阵切换器串口连接说明景阳华泰科技

    unity串口 连接多个串口崩溃_hdmi视频矩阵切换器串口连接说明景阳华泰科技需要做拼接盒与矩阵联动拼接上大屏,在大屏软件上控制矩阵切换器,那么必须要连接上矩阵的232串口;下面是串口连接的具体步骤:方法一:以大屏拼接盒为中心做环通连接(推荐)1、电脑主机引串口连到大屏拼接盒232输入端,(由于大屏拼接盒232是用网口来定义的,所以电脑端要用USB转网口或者232转网口来连接大屏);2、各大屏拼接盒RS232环通连接;3、大屏环通后的RS232…

    2022年10月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号