zoukankan      html  css  js  c++  java
  • 未将对象引用设置到对象的实例--可能出现的问题总结

    一、网络上的一般说法

    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在不同的方法里面使用后而出现这种问题,如今还不是非常清楚.........................

  • 相关阅读:
    LeetCode 123. Best Time to Buy and Sell Stock III (stock problem)
    精帖转载(关于stock problem)
    LeetCode 122. Best Time to Buy and Sell Stock II (stock problem)
    LeetCode 121. Best Time to Buy and Sell Stock (stock problem)
    LeetCode 120. Triangle
    基于docker 搭建Elasticsearch5.6.4 分布式集群
    从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
    Harbor实现容器镜像仓库的管理和运维
    docker中制作自己的JDK+tomcat镜像
    docker镜像制作---jdk7+tomcat7基础镜像
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4228486.html
Copyright © 2011-2022 走看看