查询在VS2017中返回的结果与SSMS中返回的结果不同

时间:2018-07-24 13:43:30

标签: sql visual-studio ssms

我正在查询SSMS中的一张表,以填充Visual Studio中的gridview。我建立了查询以将varchar值排序为数字值。我尝试了几种不同的方法在SSMS中都取得成功。

ORDER BY case 
when IsNumeric(mycol) = 1 then CONVERT(float, mycol)
else mycol
end

ORDER BY try_convert(float, mycol)

当我对gridview进行排序时,返回的值将按字符串(1、100、2、200)进行排序。我在VS中跟踪了查询,将其复制到SSMS中并返回了正确的结果。任何人都可以阐明这个问题吗?

1 个答案:

答案 0 :(得分:0)

问题不是我的查询,而是GridViewSortEvent。排序时,我在查询数据并将其绑定到gridview的地方调用GV_Sorting,然后排序事件再次将其作为字符串值进行了排序,因为表中的列为varchars。我通过取消方法第一行中的排序事件来停止此操作。

e.Cancel = true;