我正在使用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。似乎
MAX
和COUNT
SQL函数总是返回单个行集合。关于c# - 当我什么都没得到的时候得到空洞的答案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29557877/