尝试投射空值时引发异常

时间:2018-09-11 22:47:03

标签: c# winforms

我有一个查询,我从DataTable的数据库中接收信息:

DataTable estimateCalculation = new DataTable();

estimateCalculation = db.ExeSQLEstimate("usp_Contracted_Calculation", param1, param2);

所以现在我得到的值是:

 var averageContractedAmount = (from DataRow dr in estimateCalculation.Rows select (decimal)dr["AverageContractedAmount"]).FirstOrDefault().ToString("C");

但是在某些情况下dr可以为空,因此会引发异常

  

System.InvalidCastException:'指定的转换无效

如何验证dr是否返回null,而不尝试将其转换为十进制?

1 个答案:

答案 0 :(得分:1)

我认为您需要类似这样的简单内容。如果我误解了,请澄清。 (也欢迎)

DataTable dt = new DataTable();
if (dt.Rows.Count == 0)
    return;

值得一看的DataRow.IsNull()

if (!dataRow.IsNull()); 

我自己没有使用过它,但是看起来它可能是您想要的理想选择。