以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] Datatable 的 GetValues 为什么不按取值列排序呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158839) |
-- 作者:龙潭春早 -- 发布时间:2020/12/4 0:37:00 -- [求助] Datatable 的 GetValues 为什么不按取值列排序呢? 帮助中介绍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("应用场所","","应用场所") 奇怪啊,为什么呢? |
-- 作者:有点蓝 -- 发布时间:2020/12/4 8:40:00 -- 正常。中文字符串默认就是按拼音排序的,如果要按用来的行顺序排序: dcNames = DataTables("表C").GetValues("应用场所","_sortkey") |
-- 作者:龙潭春早 -- 发布时间:2020/12/4 15:23:00 -- 哦 那帮助的这个说明应该改一下了,不应该笼统地说是按照取值列排序,误导人哦 |
-- 作者:有点蓝 -- 发布时间:2020/12/4 15:46:00 -- 帮助没有问题,您理解不到位而已。取值列存储的是中文,那就是按照拼音排序 |