从类型“DBNull”到“Integer”类型的转换无效

时间:2013-06-27 06:52:20

标签: vb.net gridview

我想在PendingApproval值上设置可见性,但是在数据库PendingApprovalfield中允许为空,所以我在这里得到的错误是代码

我收到此错误从“DBNull”类型转换为“Integer”类型无效。

 style="margin-left:6px; margin-top:auto; display:<%#  IIf(CTYPE(Eval("PendingApproval"),Integer) = 1, "block", "none")%>"

2 个答案:

答案 0 :(得分:1)

试试这个。我假设如果值为NULL,则可见性需要设置

style="margin-left:6px; margin-top:auto; display:<%# IIf(Eval("PendingApproval")=DBNull.value,"none", IIf(Eval("PendingApproval") = 1, "block", "none"))%>"

一个建议,在用于提取报告的查询中,您可以应用ISNULL()函数,如下所示:

SELECT col1, ISNULL(PendingApproval,0), ..., coln FROM TABLE1

通过这种方式,您将获得NULL值0,并且您的旧代码将无法正常工作而无需比较DBNull.value

答案 1 :(得分:0)

为防止出现此错误,请尝试此操作..

style="margin-left:6px; margin-top:auto; display:<%#Iif(Eval("PendingApproval") Is Null,"none",IIf(CTYPE(Eval("PendingApproval"),Integer) = 1, "block", "none"))%>"