【问题标题】:Why does my IF statement returns error?为什么我的 IF 语句返回错误?
【发布时间】:2015-11-03 07:18:09
【问题描述】:

我正在使用此表达式根据其他列在 RDLC 列中生成“是”或“否”,但它会给出错误。为什么?

=IIF(Fields!ApprovalsDraftsmanApproval.Value= 0 
or Fields!ApprovalsInspectorApproval.Value= 0 
or Fields!ApprovalsPatwariApproval.Value=0, "No", "False")

更新:

逻辑:请参阅我在 RDLC 报告中有 10 列,有 3 个 BIT 类型列,现在我用最后一列来确定 3 个 BIT 列中的任何一个是否具有 FALSE 值,然后选择是,否则在每一行中选择否

【问题讨论】:

  • 什么错误??????你的逻辑是什么?
  • @Imad:看我在 RDLC 报告中有 10 列,有 3 个 BIT 类型列,现在我用最后一列来确定 3 个 BIT 列中是否有任何一个具有 FALSE 值,然后选择是,否则在每个列中都没有行
  • 检查这些列中是否存在 null/dbnull 值
  • 你使用的是vb或c#
  • @haraman 不是先生,不是 NULL 值

标签: asp.net vb.net reporting-services report rdlc


【解决方案1】:

IIF 是特定于 VB 的语句,它在 C# 中不存在。而是使用“?”三元运算符。见下文:

var result = Fields!ApprovalsDraftsmanApproval.Value == 0 ||
Fields!ApprovalsInspectorApproval.Value == 0 ||
Fields!ApprovalsPatwariApproval.Value == 0 ? "No" : "False";

编辑

您还需要知道 - 在 C# 中,“=”和“==”是有区别的。 “=”用于赋值,而“==”用于比较值。因此,您不能使用“=”运算符比较 C# 中的值。

【讨论】:

  • C#.net,与 asp.net 兄弟
  • C# 如果是桌面、Web 或其他任何东西,C# 就不是 C#。
  • 我也在 C# 中使用 IFF,但在这种情况下不起作用,所以这是与 VB 或 C# 语法无关的其他问题
  • 我尝试了你的答案,但没有奏效,语法错误
  • 加号 == 不能用于 RDLC 表达式
【解决方案2】:

我多次面临这个问题......我的解决方案是崩溃

if then
else
end if

或者我用 Val() 玩了个把戏

=IIF(val(Fields!ApprovalsDraftsmanApproval.Value)= 0 
or val(Fields!ApprovalsInspectorApproval.Value)= 0 
or val(Fields!ApprovalsPatwariApproval.Value)=0, "No", "False")

它一直对我有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    相关资源
    最近更新 更多