<%# StartGetChild(int.Parse(Eval("TypeID").ToString()),int.Parse(Eval("TopParentID").ToString()))%>估计是第二个参数在数据库中的值为null引用的。 请问如何转换,如果为null值则替换为0

解决方案 »

  1.   

    修改成这样了,还是提示“输入字符串的格式不正确”<%# StartGetChild(int.Parse(Eval("TypeID").ToString()), int.Parse(Eval("TopParentID") == null ? "0" : Eval("TopParentID").ToString()))%>
      

  2.   

    StartGetChild方法里面的参数是什么类型的
    <%# StartGetChild(int.Parse(Eval("TypeID").ToString()), Eval("TopParentID").ToString() == null ? 0 : int.Parse(Eval("TopParentID").ToString()))%>
      

  3.   

    <%# StartGetChild(int.Parse(Eval("TypeID").ToString()), int.Parse(Eval("TopParentID") == null ? "0" : Eval("TopParentID").ToString()))%>TypeID和TopParentID可能是字符串“123ABC123“,而不是“123”只有当字符串为数字时,才能int.parse,检查一下吧
      

  4.   


    这个方法里的参数是这样的:
    public string StartGetChild(int ParentID,int TopParentID)
            {
             ...
    }
    数据库中 “TopParentID” 字段全是null值,我把后面的参数换成跟前面一样就不报错了。所以肯定是参数值的问题。
      

  5.   

    上面我的说法有问题,数据库中“TopParentID”字段在该绑定的SQL语句查询出来的数据中,都是null值。 
      

  6.   

    那就这样子撒
    <%# StartGetChild(int.Parse(Eval("TypeID").ToString()==null?"0":Eval("TypeID").ToString()), int.Parse(Eval("TopParentID") == null ? "0" : Eval("TopParentID").ToString()))%>
    前面要,后面也要把
      

  7.   


    刚在后台用if检测了一下,如果数据库字段为 null,使用 Eval("TopParentID") == null 判断是不行的。
      

  8.   

    要不就在数据库select的时候如果为null就赋值为0
      

  9.   


    在查询数据库时 使用is(TopParentID,0) as TopParentID 判断一下就OK了。谢谢各位,结贴了。4楼的回答才是与该问题最接近的。 
      

  10.   

    上面又打错了,晕 。应该是 isNull(TopParentID,0) as TopParentID 。