asp.net经典问题之“未将对象引用设置到对象的实例”

转载自:http://blog.csdn.net/sunqing0316/article/details/20797245


        相信几乎所有学过asp.net的朋友都遇到过这个问题:未将对象引用设置到对象的实例。这个问题在我刚开始学习这方面的知识的时候真有点让崩溃的感觉,当时都快打击死我了,不过经过了以后,反而有一种明朗的小激动,呵呵,问题是进步的阶梯,此乃真理。下面,就来看一下到底都有哪些原因会造成这个问题的出现(这里有我自己遇到的问题,也有在网上查阅的资料)

一、数据库方面 

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补丁 

需要打NETFRAMEEWORK1.1 SP1的补丁,到微软官方网站下载安装后就好了。 

四、一般出现NullReferenceException异常的情况:

1、对象所在的命名空间没有引用

2、对象没有实例化

3、出现异常,实例化失败对象为 null

 

五、IIS 扛不住的时候,也会出现上面的错误。

当应用程序的用户访问量超过它能承受的范围之后,就会出错。

改善你的程序,使用缓存,尽量减少与数据库交互的次数。

 

六、查看是否重置了DataSet引用

请大家好好查查自己的代码,是不是在其他地方重新引用了,在DataSet被设置成全局对象也会出现这种错误提示。

 

七、最后

甚至,仅仅因为网站里面DAL的dll文件失效,业务层实例化不了IDAL里面的对象也会出错。

当你发现所有的方法不行时,打上.netframework的补丁

总结

        暂时就这么多了吧,虽然错误的表现形式大致相同,但是其原因却是五花八门,学习就要像中医一样,治标更要治本,学习要知其然还要知其所以然。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Part1第一部分: 相信大家找得到该书的源代码部分 也就是这部分内容 因此我便无偿奉送 让大家下载试试。 若感觉可以方可继续下载电子书部分。 1.本书1~21章所附代码的运行环境 操作系统:Windows Server 2003或Windows XP Professional 开发环境:Microsoft Visual Studio 2005 数据库:SQL Server 2005 Web服务器:IIS 5.1及以上版本 2.本书所附光盘范例 第1章(\Chapter 01) 示例描述:本章演示ASP.NET 2.0网站的预编译以及学习ASP.NET 2.0的前置知识。 WebSite文件夹 创建的ASP.NET 2.0 Web站点。 www文件夹 第一个用C#开发的Web应用程序。 bianyi.bat 编译网站的批处理文件。 form.html 表单范例。 css.html CSS范例。 第3章(\Chapter 03) 示例描述:本章介绍C# 2.0程序设计基础。 3-01.cs 第一个C#程序。 3-02.cs 不导入命名空间来改写程序3-01.cs。 3-03.cs ReadLine()方法读数据。 3-04.cs 常量的使用。 3-05.cs 整型类型的使用。 3-06.cs 结构类型的使用。 3-07.cs 枚举类型的使用。 3-08.cs 用一个输入参数通过值传递一个变量给一个方法。 3-09.cs 一维数组的使用。 3-10.cs 使用代理类型。 3-11.cs 使用接口。 3-12.cs 装箱操作。 3-13.cs 字符串操作。 3-14.cs if语句的使用。 3-15.cs switch语句的使用。 3-16.cs while语句的使用。 3-17.cs do-while语句的使用。 3-18.cs for语句的使用。 3-19.cs 异常捕获:try-catch语句的使用。 3-20.cs 异常捕获:try-finally语句的使用。 3-21.cs 异常捕获:try-catch-finally语句的使用。 3-22.cs get和set对属性的值进行读写操作。 3-23.cs 方法的使用。 3-24.cs 继承演示。 3-25.cs 多态性演示。 第4 章(\Chapter 04) 示例描述:本章学习ASP.NET 2.0页面基本对象。 4-01.aspx aspx页面中添加一个Lable标签。 4-02.aspx 读出Application的属性值。 4-03.aspx 读出SessionID的值。 4-04.aspx 创建Session对象。 4-05.aspx 读取传递的Session值并显示。 4-06.aspx 使用Response对象的Write()方法。 4-07.aspx
《Dreamweaver+ASP.NET动态网站设计与典型实例》配书光盘说明 配书光盘 版权所有,侵权必究 2007年10月 一、光盘内容: 1. Readme.txt 光盘说明文件,在使用前请先读光盘的Readme.txt文件。 2.目录内容: \1 (第1章) MyFirstPage.aspx:一个简单的ASP.NET程序 \3 (第3章) default.html:个人博客首页面 \5 (第5章) 5-1.aspx:个人简历页面 \6 (第6章) Friend.mdb:示例所引用的好友地址簿数据库 DataGrid.aspx:DataGrid控件的应用 DataList_Repeater.aspx:DataList控件和Repeater控件的应用 UseDataAdapter.aspx:使用DataAdapter对象访问数据 UseDataReader.aspx:使用DataReader对象访问数据 \liuyangbu (第7章) Admin.aspx:留言管理页面 Default.aspx:浏览留言页面 Login.aspx:管理员的登录页面 ly_add.aspx:添加留言页面 ly_Reply.aspx:留言回复页面 data.mdb:数据库 web.config:应用程序配置文件(在测试过程中,随着数据库data.mdb的路径不同,web.config代码中的“Data Source=G:\example\liuyanbu\data.mdb”也作相应的改动)。 \huiyuanguanli (第8章) Active_User.aspx:激活会员账号页面 default.aspx:会员登录页面 LoadPass.aspx:找回密码页面 login.aspx:会员注册页面 main.aspx:会员登录成功后的主页面 ModiPwd.aspx:修改密码页面 ModiUser.aspx:修改会员信息页面 UserInfo.mdb:数据库 web.config:应用程序配置文件(在测试过程中,随着数据库data.mdb的路径不同,web.config代码中的“Data Source=G:\example\huiyuanguanli\UserInfo.mdb”也作相应的改动)。 \xiangceguanli (第9章) Admin.aspx:后台主页面 Class_Add.aspx:添加分类页面 Class_Admin.aspx:管理分类页面 Default.aspx:浏览相册页面 Photo_Add.aspx:添加相片页面 Photo_Admin.aspx:管理相片页面 Photo_Edit.aspx:更改相片信息页面 Photo_LY_Admin.aspx:相片留言管理页面 ViewPhoto.aspx:查看相片页面 web.config:应用程序配置文件(在测试过程中,随着数据库data.mdb的路径不同,web.config代码中的“Data Source=G:\example\xinwenfabu\Data\data.mdb”也作相应的改动)。 \data\data.mdb:数据库 \tongxuelu (第10章) BJGL.aspx:班级管理页面 BJLY.aspx:浏览班级留言页面 BJLY_add.aspx:添加班级留言页面 BJTXL.aspx:班级通讯录页面 BJXC.aspx:浏览班级相册页面 BJXC_Add.aspx:添加班级相册页面 Class_Add.aspx:添加班级页面 Default.aspx:用户登录页面 LoadPass.aspx:找回密码页面 Login.aspx:用户注册页面 Main.aspx:主页面 ModiUser.aspx:修改用户信息页面 Pop_Info.aspx:批复管理员申请页面 School_Add.aspx:新增学校页面 Schoolinfo.aspx:查看班级列表页面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值