【问题标题】:Gridview row throwing an errorGridview行抛出错误
【发布时间】:2011-03-28 14:24:00
【问题描述】:

让我们先说我正在调试别人的代码 :-) 该错误发生在尝试将数据从 gridview 导出到 excel 文件的代码例程中。

GridView gv = new GridView();
Table table = new Table();
int maxRow = 60000;
int gvrow = Data().Tables[0].Rows.Count;  

错误发生在 Data().Tables[0].Rows.Count

即时窗口中的错误是:
? Data().Tables[0].Rows.Count
System.Data.dll 中出现“System.FormatException”类型的第一次机会异常 'Data()' 为空

错误信息是:
System.NullReferenceException 未被用户代码处理 Message="对象引用未设置为对象的实例。"

有什么想法吗?

【问题讨论】:

  • 什么是数据()?那指的是什么组件?
  • Data() 是一个调用存储过程的子例程,该过程返回用于填充 excel 文件的数据集。

标签: c# asp.net .net-3.5 gridview


【解决方案1】:

Data() 返回null。修复它。

【讨论】:

  • 问题是它不返回 null。有总是返回的记录。
  • @user279521:请验证,即,执行类似var myData = Data(); if (myData == null) throw new Exception("Data() has unexpectedly returned null"); 的操作。目前,它真的看起来像 Data() 返回 null。
【解决方案2】:

我无法仅根据这段代码来判断(Data() 应该做什么?),但我的猜测是对 Data() 的调用由于某种原因返回 null,或者至少返回某种类型的数据集,其中没有实际的表。

【讨论】:

    【解决方案3】:

    听起来您只需要在尝试访问属性之前检查 Data() 是否不为空。

    【讨论】:

      猜你喜欢
      • 2018-11-17
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多