我正在使用SQL Server Compact数据库的C#程序。我有一个查询,我想在特定字段中选择最高编号,如下所示:

SELECT MAX(nr2) FROM TABLE WHERE nr1 = '10'


当nr1为10的行时,此操作按预期进行。但是,当该行不存在时,我希望不会得到答案,而是得到一个空字段。所以在我的C#代码中,我有:

text = result[0].ToString();


当我从SQL查询中获得一个值时,该字符串包含一个数字,而当指定的行不存在时,我将获得一个空字符串。

这并不是一个大问题,但是我可以进行以下检查:

if (result.Count > 0)


代替:

if (result[0].ToString() == "")


由于计数总是大于0,因此我现在必须这样做。

最佳答案

谈论使用大锤开裂螺母,但是...

我不使用C#代码进行测试,但是在SQL Server Management Studio中,如果您运行...

SELECT MAX(nr2) FROM TABLE WHERE nr1 = '10' HAVING MAX(nr2) IS NOT NULL


,结果是一个空集合,而不是具有一个null(或空)元素的集合。

注意:我的答案基于此SO Answer。似乎MAXCOUNT SQL函数总是返回单个行集合。

关于c# - 当我什么都没得到的时候得到空洞的答案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29557877/

10-13 05:53