Foxtable(狐表)用户栏目专家坐堂 → [求助] Datatable 的 GetValues 为什么不按取值列排序呢?


  共有3023人关注过本帖树形打印复制链接

主题:[求助] Datatable 的 GetValues 为什么不按取值列排序呢?

美女呀,离线,留言给我吧!
龙潭春早
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
[求助] Datatable 的 GetValues 为什么不按取值列排序呢?  发帖心情 Post By:2020/12/4 0:37:00 [只看该作者]

帮助中介绍Datatable时说,其GetValues的Sort属性如果省略,则根据取值列排序,通常无需设置。

但是实际应用时,

1、不指定sort,得到的不是按取值列的排序,而是按照数据第一个文字的拼音排序的

   在命令窗口执行代码:

Dim dcNames As List(Of String)
dcNames = DataTables("表C").GetValues("应用场所")
For Each dcName As String In dcNames
Output.Show(dcName)
Next

得到:

宾馆,小馆,旅社,快餐,酒店,饭店,农家乐
餐厅,客栈,酒店,宾馆,餐馆,快餐,小馆
酒店,餐厅,旅社,客栈
客栈,小馆,宾馆,饭店,农家乐,餐厅

而实际上,表C中第一行的数据是:酒店,餐厅,旅社,客栈

2、即使指定取值列为排序列,得到的结果和上面的相同

dcNames = DataTables("表C").GetValues("应用场所","","应用场所")

奇怪啊,为什么呢?



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/4 8:40:00 [只看该作者]

正常。中文字符串默认就是按拼音排序的,如果要按用来的行顺序排序:

dcNames = DataTables("表C").GetValues("应用场所","_sortkey")

 回到顶部
美女呀,离线,留言给我吧!
龙潭春早
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:676 积分:4895 威望:0 精华:0 注册:2018/3/22 16:05:00
  发帖心情 Post By:2020/12/4 15:23:00 [只看该作者]

哦 那帮助的这个说明应该改一下了,不应该笼统地说是按照取值列排序,误导人哦

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/4 15:46:00 [只看该作者]

帮助没有问题,您理解不到位而已。取值列存储的是中文,那就是按照拼音排序

 回到顶部