找回密码
 立即注册

QQ登录

只需一步,快速开始

dapsjj
初级会员   /  发表于:2016-11-18 17:01  /   查看:4009  /  回复:5
spread使用某个单元格的数据后,删除了这个单元格的数据导致空指针异常(nullreferenceexception),怎么处理?

代码为:
  1. if (
  2.                 grdMain.ActiveSheet.Cells[e.Row, 5].Value.ToString().Trim() != "" && //重量不为空
  3.                 IsNumber(grdMain.ActiveSheet.Cells[e.Row, 5].Value.ToString()) == false //重量不是数字
  4.                 )
  5.             {
  6.                 MessageBox.Show("只能输入数字");
  7.                 return;
  8.             }
复制代码
也就是如下图这样,如图1,图2所示。先录一个重量,然后再删除重量就报错,请问如何处理?
再就是有什么办法能让spread输入的格式是number后如果数据库的值为空不显示为0,现在如果把spread设计器中某一列设置为number,那么如果这一列的值是从dataset中取出来的,然后循环放入spread中,那么在spread中全部显示为0,如图3,图4所示.怎么调spread能让PC那一列为空时不全部显示0.00?


1

1

2

2

3

3

4

4

5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-18 17:07:32
沙发
if (fpSpread1.ActiveSheet.Cells[0, 0].Value != null || fpSpread1.ActiveSheet.Cells[0, 0].Value.ToString().Trim() == string.Empty)
            {

            }

先判断Value 是否为空
回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-18 18:32:31
板凳
dexteryao 发表于 2016-11-18 17:07
if (fpSpread1.ActiveSheet.Cells[0, 0].Value != null || fpSpread1.ActiveSheet.Cells[0, 0].Value.ToStr ...

if (fpSpread1.ActiveSheet.Cells[0, 0].Value != null || fpSpread1.ActiveSheet.Cells[0, 0].Value.ToString().Trim() == string.Empty)这句话的意思是Cells[0, 0]的Value不可以是空或者Cells[0, 0]的Value是空,我这个理解对吗?看着很奇怪啊,前半句判断不能是空后半句意思或者是空,这很矛盾啊?
您能看看我这句if (
                grdMain.ActiveSheet.Cells[e.Row, 5].Value.ToString().Trim() != "" && //重量不为空
                IsNumber(grdMain.ActiveSheet.Cells[e.Row, 5].Value.ToString()) == false //重量不是数字
                )
换成您说的那个写法应该怎么写吗?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-21 10:59:06
地板
不好意,逻辑写错了。我的意思是先判断 fpSpread1.ActiveSheet.Cells[0, 0].Value != null  ,如果value为null的话那tostring肯定会报错。

if ( fpSpread1.ActiveSheet.Cells[0, 0].Value != null&&
                grdMain.ActiveSheet.Cells[e.Row, 5].Value.ToString().Trim() != "" && //重量不为空
                IsNumber(grdMain.ActiveSheet.Cells[e.Row, 5].Value.ToString()) == false //重量不是数字
                )

评分

参与人数 1满意度 +5 收起 理由
dapsjj + 5 赞一个!

查看全部评分

回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-21 12:34:26
5#
dexteryao 发表于 2016-11-21 10:59
不好意,逻辑写错了。我的意思是先判断 fpSpread1.ActiveSheet.Cells[0, 0].Value != null  ,如果value为n ...

嗯,我明白了,谢谢您!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-21 13:44:10
6#
不客气,应该的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部