首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理如果ExecuteScalar为null

如何处理如果ExecuteScalar为null
EN

Stack Overflow用户
提问于 2019-08-21 06:42:53
回答 2查看 326关注 0票数 0

如果C#为null,我希望您能帮助您了解如何在ExecuteScalar中处理和异常。正在尝试,但得到一个空引用例外。这是我的密码

代码语言:javascript
复制
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;
      }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-25 23:00:17

实际上,我并没有使用您的代码来解决这个问题,但是您提到了我的查询返回null,但是我告诉ExecuteScalarAsync它应该是一个int。所以从你的陈述中我就这样做了,而且起了作用。不管怎样,谢谢

公共异步任务SumItemAsync() { var data =等待db.ExecuteScalarAsync(“从已使用的数据中选择SUM(TotalAmount)”);if (data != null) {返回数据;}{返回"0.00";}

票数 -1
EN

Stack Overflow用户

发布于 2019-08-21 07:05:55

我认为问题在于您的查询返回null,但是您告诉ExecuteScalarAsync应该是int。将其更改为可空的int。

代码语言:javascript
复制
var data = db.ExecuteScalarAsync<int?>("SELECT SUM(Amount) FROM Spent")
return data ?? 0;

然后,可以将返回表达式简化一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57585822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档