如果ExecuteScalar为null,我希望您提供有关如何在C#中处理和异常的帮助。我正在尝试,但是得到了空引用exceprion。这是我的代码
public async Task<int> SumItemAsync()
{
Object data = await db.ExecuteScalarAsync<int>("SELECT
SUM(Amount) FROM Spent");
if (data != null)
{
return Convert.ToInt32(data);
}
else
{
return 0;
}
}
答案 0 :(得分:1)
我认为问题在于您的查询返回了null
,但是您告诉ExecuteScalarAsync
应该是int
。将其更改为可为null的int。
var data = db.ExecuteScalarAsync<int?>("SELECT SUM(Amount) FROM Spent")
return data ?? 0;
然后您可以稍微简化返回表达式。
答案 1 :(得分:-1)
我实际上没有通过使用您的代码来解决它,但是您提到我的查询返回null,但是我告诉ExecuteScalarAsync应该是一个int。因此,根据您的陈述,我做到了这一点,并且奏效了。还是谢谢你
公共异步任务SumItemAsync() {
var data = await db.ExecuteScalarAsync<String>("SELECT SUM(TotalAmount) FROM Spent"); if (data != null) { return data; } else { return "0.00"; }