【问题标题】:Conversion from type 'DBNull' to type 'Integer' is not valid从“DBNull”类型到“Integer”类型的转换无效
【发布时间】:2013-06-27 06:52:19
【问题描述】:

我想在 PendingApproval 值上设置可见性打开或关闭,但在数据库中 PendingApprovalfield 允许 null tr​​ue 所以我收到错误代码

我收到此错误从类型“DBNull”到类型“整数”的转换无效。

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

【问题讨论】:

标签: vb.net gridview


【解决方案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 即可正常工作

【讨论】:

  • 我使用这个但得到错误 BC30452:运算符 '=' 没有为类型 'Object' 和 'System.DBNull' 定义。也使用 == 但它也不起作用
【解决方案2】:

为了防止这个错误你试试这个..

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-10
    • 2012-11-19
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多