"未将对象引用设置到对象的实例"异常的几种常见场合 【转载留着查找方面,哈哈】

转载 2013年01月24日 09:12:26

在.net编程中,当我们使用一个并不存在的对象时,系统就会抛出这个异常:System.NullReferenceException: 未将对象引用设置到对象的实例。下面把几种常见的场合做下介绍:

 

1.没有传参数给当前页面,却在程序里直接获取

如果我们没有给页面传一参数,假设参数名为name,但我们直接在程序里用Request.QueryString["name"]获取,则必然出现未将对象引用设置到对象的实例异常,例如:

string name = Request.QueryString["name"].ToString();

要避免出现此类异常,可先进行参数是否为空判断:

 if (Request.QueryString["name"] != null)
{ string name = Request.QueryString["name"].ToString(); }

 

 

2.Session,ViewState等内置对象未定义时直接使用

当我们没有定义Session,ViewState时却直接引用,例如:

string name = Session["name"].ToString();

此时则也会引发“未将对象引用设置到对象的实例“异常,解决这类问题可先定义值,例如:

Session["name"] = "abc";

ViewState["name"] = "abc";

则此时再执行string name = Session["name"].ToString()则不会出现错误,当然在引用前进行是否为空判断,也是很必要的:

if (Session["name"] != null)
{ string name = Session["name"].ToString(); }

 

 

3.下拉列表不存在某值时却设置该值为选定状态

当我们要设定下拉列表某项为选定状态时,经常使用 this.ddl.Items.FindByValue("abc").Selected = true;

但是当下拉列表的项目中并不存在"abc"这一项时,则会引发“未将对象引用设置到对象的实例“异常,解决该类问题是应先判断下拉列表里是否存在该项,存在才可做此设置:

for (int i = 0; i < this.ddl.Items.Count; i++)
{
     if (this.ddl.Items[i].Value.Equals("abc"))
     { this.ddl.Items[i].Selected = true; break; }
}

 

 

4.记录集DataSet里不存在表格却直接引用

当我们将记录集绑定到GridView时,经常用到this.GridView1.DataSource = DataSet1.Tables[0].DefaultView;

但是当DataSet1里根本就不存在数据表时,则必然会引发“未将对象引用设置到对象的实例“异常,解决该类问题是在绑定前判断表格是否存在:

if(DataSet1.Tables.Count > 0)
{this.GridView1.DataSource = DataSet1.Tables[0].DefaultView;}

 

 

5.页面未定义控件,却在程序里直接引用

此种情况不多见,但也偶有发生,一般是修改页面时误操作,例如上例,如果我们不小心把GridView1删除了,则此时再执行

if(DataSet1.Tables.Count > 0)
{this.GridView1.DataSource = DataSet1.Tables[0].DefaultView;}

则定会引发“未将对象引用设置到对象的实例“异常,此时重新添加上GridView1控件即可。


 

VS2017错误:未将对象引用设置到对象的实例

装完python模块之后运行程序就出现这个错误。网上搜了一堆方法都是改注册表。 知乎上有个解决方法:打开--C:\Users\用户名\AppData\Local\Microsoft\VisualSt...
  • lsaejn
  • lsaejn
  • 2017年11月10日 14:50
  • 518

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

我遇到的出现这种错误的原因一般是以下几种情况:1.在绑定数据控件的时候,                    //建立数据库连接                    OleDbConnection...
  • itzhiren
  • itzhiren
  • 2007年05月23日 09:50
  • 45635

【C#】错误“System.NullReferenceException:未将对象引用设置到对象的实例“解析

错误原因分析   首先,你要知道,在.net里面所有操作的变量都是对象。   一般的标示符,如int,string,char等等,最后都会转换为System命名空间下面的类名(如Int32,Str...
  • Gnd15732625435
  • Gnd15732625435
  • 2017年08月27日 10:29
  • 3323

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

相信几乎所有学过asp.net的朋友都遇到过这个问题:未将对象引用设置到对象的实例。这个问题在我刚开始学习这方面的知识的时候真有点让崩溃的感觉,当时都快打击死我了,不过经过了以后,反而有一种明朗的小激...
  • sunqing0316
  • sunqing0316
  • 2014年03月12日 17:03
  • 59567

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

string id=Request.QueryString[ "id "].Trim();   string Sqlstr = "select * from adminas where ID= "+...
  • lanpy88
  • lanpy88
  • 2009年12月17日 14:04
  • 1841

NPOI导入数据时报错“未将对象引用设置到对象的实例”,解决方案

传值得时候,导入的数据里有为空的单元格,然后前面没有加判断什么的,所以后面会报错。 解决方案就是判断咯~(ExcelMapper里面加个int变量IsNUll,以及构造,默认为0;然后创建的时候必填...
  • qq_31083285
  • qq_31083285
  • 2016年01月04日 16:12
  • 1308

未将对象引用设置到对象的实例 Microsoft.Office.Server.Administration.SqlSessionStateResolver

未将对象引用设置到对象的实例 Microsoft.Office.Server.Administration.SqlSessionStateResolver 错误  发生意外错误。  shar...
  • yl_99
  • yl_99
  • 2013年05月03日 15:28
  • 2782

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

C#中报: 未将对象引用设置到对象的实例这个错误一般都是对象为null产生的,下面几个简单的例子: protected void Page_Load(object sender, EventArg...
  • yfz19890410
  • yfz19890410
  • 2015年08月18日 11:21
  • 1947

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

一、网络上的一般说法1、ViewState 对象为Null。2、DateSet 空。3、sql语句或Datebase的原因导致DataReader空。4、声明字符串变量时未赋空值就应用变量。5、未用n...
  • sollion
  • sollion
  • 2010年07月30日 20:07
  • 303165

出现“未将对象引用设置到对象的实例” 错误2010-09-16 19:07解决办法

解决办法 出现“未将对象引用设置到对象的实例” 错误,一般是下面的原因: 1、ViewState 对象为Null。 2、DateSet 为空。 3、sql语句或Datebase的原因导致Dat...
  • diligentcat
  • diligentcat
  • 2011年11月17日 12:15
  • 2799
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:"未将对象引用设置到对象的实例"异常的几种常见场合 【转载留着查找方面,哈哈】
举报原因:
原因补充:

(最多只允许输入30个字)