处理空状态

时间:2016-03-18 13:00:41

标签: asp.net vb.net

我想在下面的代码中处理null条件。

    lstTest.Discount = If((Not dataSet.Tables("History") Is Nothing), 
If(IsDBNull(dataSet.Tables("History").Rows(0)("DiscountsAdjustmentsAmount")),
 "$0.00", 
StringToCurrency(GetContractualDiscount(dataSet.Tables("History").Rows(0)
("DiscountsAdjustmentsAmount"), dataSet.Tables("History").Rows(0)
("DiscountsAdjustments"), dataSet.Tables("History").Rows(0)
("EstimatedCharges")))), "$0.00")

我的代码正在破解

dataSet.Tables("History").Rows(0)("DiscountsAdjustments")

因为它的值是null。我想用" 0.00"

替换null value

请帮助我如何处理。

由于

2 个答案:

答案 0 :(得分:2)

的Rahul,

您可能需要重写此部分内容。这是您的原始代码:

   lstTest.Discount = If((Not dataSet.Tables("History") Is Nothing), 
If(IsDBNull(dataSet.Tables("History").Rows(0)("DiscountsAdjustmentsAmount")),
 "$0.00", 
StringToCurrency(GetContractualDiscount(dataSet.Tables("History").Rows(0)
("DiscountsAdjustmentsAmount"), dataSet.Tables("History").Rows(0)
("DiscountsAdjustments"), dataSet.Tables("History").Rows(0)
("EstimatedCharges")))), "$0.00")

而不是这个大的嵌套混乱...为什么不这样做呢。注意我前面没有VB调试器,所以可能会有一些轻微的格式调整,所以请考虑这个伪代码:

数据集是否有效

If Not IsDBNull(dataSet.Tables("History"))

''We know that we have data in our dataset

''Do all your checks 
if Not isDBNull(dataSet.Tables("History").Rows(0)("Your field"))
 ''Do something
Else
  ''Show a 0
END IF

''REPEAT THE ABOVE LINES FOR EACH FIELD

End if

答案 1 :(得分:0)

您可以首先使用DataRow对象上的方法检查任何列上的null:

Which of IsDBNull and IsNull should be used?