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

我遇到的出现这种错误的原因一般是以下几种情况:

1.在绑定数据控件的时候,

                    //建立数据库连接
                    OleDbConnection conn = new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath("news.mdb"));
                    //创建OleDbDataAdapter对象,按照指定的查询语句获取结果
                    OleDbDataAdapter mycom = new OleDbDataAdapter("select top 12 * from contents where typeid=1 order by shijian desc", conn);
                    OleDbDataAdapter mycom1 = new OleDbDataAdapter("select top 12 * from contents where typeid=2 order by shijian desc", conn);
                    //定义DataSet对象,将查询结果填充到这个对象上
                    DataSet ds = new DataSet();
                    mycom.Fill(ds, "contents");
                    mycom1.Fill(ds, "types");

这个时候,如果直接绑定:

                        mylist.DataSource = ds.Tables["contents"].DefaultView;
                        mylist1.DataSource = ds.Tables["types"].DefaultView;
                        mylist.DataBind();
                        mylist1.DataBind();

那么如果这两个表中没有记录,就有可能出现这个错误。

通过调试,查阅MSDN帮助就可以获得该问题的相关资料:

关于异常的疑难解答:System.NullReferenceException 

试图在代码中引用不存在的对象时,会发生 NullReferenceException。例如,您可能试图在未先使用 New 关键字的情况下使用对象,或试图使用值设置为 null(在 Visual Basic 中为 Nothing)的对象。

<script type="text/Javascript"> var ExpCollDivStr = ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl02a6762b2,"; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl02img,"; </script> 相关提示相关提示
使用关键词 New 创建实例。

您可能试图在未提供对象实例的情况下使用对象。例如, Dim CustomerTable As DataTable 应该重写为 Dim CustomerTable As New DataTable

包含检查空引用的代码块。

以编程方式检查以确定函数是否已返回 null(在 Visual Basic 中为 Nothing ),而不是对象的实例。

在 Try…Catch…Finally 语句中显式地捕获 NullReferenceException。

Try…Catch…Finally 语句可以检查特定类型的异常,从最特殊的异常到最普通的异常。

评论 5 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

itzhiren

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值