我试图使用以下代码从我的数据库中的字段获取最大数字:
var bb=(from c in Office_TBLs select c.CodeNumber).Max();
Run Code Online (Sandbox Code Playgroud)
当我运行查询时,我收到结果"999",这是错误的,因为数据库中的最大数字是1601.数据库字段中的数据类型是Nvarchar吗?
我怎样才能修复我的代码以获得正确的最大数量.
Ale*_*kov 12
"999" > "1601" 作为字符串比较 - 所以要获得结果,您需要将字符串值转换为数字.
最简单的方法是使用.Select(s => int.Parse(s)).Max())(或.Max(s => int.Parse(s)))而不是.Max()使用常规字符串比较.
请注意,根据数据的来源,可能有更好的方法来获取整数结果(包括更改数据库中的字段类型)..Select在查询上使用很可能强制查询从DB返回所有行,而不是在内存中计算Max.