gpt4 book ai didi

C# ADO.NET - 返回表中一列的总和

转载 作者:行者123 更新时间:2023-12-02 05:03:13 24 4
gpt4 key购买 nike

在我的数据库表中,我有一个名为“Cena”的列,其类型为 Integer。我需要对这些列求和以计算表格的整个“Cena”。

为此,我使用了 SqlCommand 和方法 ExecuteScalar()。

string sqlString = string.Format("Select Sum(Cena) From Ksiazki");
int returnValue ;

SqlCommand sqlComm = new SqlCommand();
sqlComm.CommandText = sqlString;
sqlComm.Connection = sqlConn;

returnValue = (int)sqlComm.ExecuteScalar();

只要我在表中有任何记录,它就可以正常工作,但是当我在数据库中的表为空时,它会崩溃。

老实说,我不知道为什么会这样,所以如果有人能告诉我当表为空时出了什么问题以及为什么它不返回 0,我将非常感激。

最佳答案

当表为空时,您的 SQL 查询返回 NULL。您不能将此返回值转换为 int,这就是 C# 引发错误的原因。

如果您使用的是 SQL Server,则可以在数据库中检查 NULL 并替换为 0。

Select Isnull(Sum(Cena), 0) From Ksiazki

您还可以使用 Coalesce,它是 Isnull 的更通用形式(并且实际上是 SQL 标准的一部分)。

关于C# ADO.NET - 返回表中一列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16697094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com