首页 > 解决方案 > 查询在 VS2017 中返回的结果与在 SSMS 中不同

问题描述

我在 SSMS 中有一个表,我正在查询它以填充 Visual Studio 中的网格视图。我构建了查询以将 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 中并返回了正确的结果。任何人都可以对这个问题有所了解吗?

标签: sqlvisual-studiossms

解决方案


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

e.Cancel = true;  

推荐阅读