sql - 查询在 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 中并返回了正确的结果。任何人都可以对这个问题有所了解吗?
解决方案
问题不是我的查询,而是 GridViewSortEvent。在排序时,我调用 GV_Sorting 查询数据并将其绑定到我的 gridview,然后排序事件 e 再次将其排序为字符串值,因为我的表中的列是 varchars。我通过取消方法第一行中的排序事件来停止此操作。
e.Cancel = true;
推荐阅读
- java - Java - 在 2 个类之间创建“多对多”关系
- testing - 生成在 JMeter 中只出现一次的随机数
- mapstruct - Mapstruct - 更新现有 bean 并忽略一个字段
- c++ - 给定类型 string::size_type,string 也是 C++ 中的命名空间吗?
- c++ - 编程 C++ 的文件流
- ios - 带有 react-native 的 iOS 上的后台任务
- javascript - 我如何知道单击了哪个 HTML 表格列下拉列表
- genesys - Genesys Workspace 桌面版停止服务
- r - 在ggplot中更改标签x轴箱线图
- haskell - 如何在某些文件描述符的子进程中继承打开的文件?