SQL与SQLList排序顺序的差异

时间:2011-02-07 19:27:25

标签: sql vb.net devexpress treelist

在我的VB.NET程序中,我使用的是Devexpress TreeList v9.2。当我运行程序时,我从存储过程填充TreeList。

当我在SQL Management Studio中运行SQL过程时,我的数据以我想要的方式返回。例如

  • 3
  • 6
  • 33
  • 42
  • 54
  • 206
  • 226
  • 733
  • 6633

然而,当我运行程序并使用与存储过程相同的结果填充TreeList时,我得到了:

  • 206
  • 226
  • 3
  • 33
  • 42
  • 54
  • 6
  • 6633
  • 733

你知道我可能做错了吗?

修改

我的存储过程中有'order by'。这就是我在SQL Management Studio中运行存储过程时获得正确顺序的原因。订单通过将数字分解为子串(因为它们也可以包含字母),因此它似乎按数字排序。不知怎的,它似乎是TreeList将它作为字符串而不是保留原始排序顺序。

修改

我创建了另一个包含数字数据的列,所以当我按照此列对表进行排序时,我的数据会看起来像我想要的那样。但即使我在属性中发送了SortOrder,它也不会排序,即使在运行时网格的标题中出现了小三角形。

解决:

我通过致电:

解决了这个问题
  • tree.beginSort()
  • 将sortindex设置为我要排序的列为0,其他列设置为-1:tree.columns("colName").SortIndex
  • 将我的列的排序顺序设置为升序:tree.columns("colName").SortOrder = SortOrder.Ascending
  • tree.endsort()

1 个答案:

答案 0 :(得分:1)

treeList的列绑定到字符串字段。在这种情况下,treeList认为此列包含字符串值并将它们排序为字符串。要更改此行为,请使用XtraTreeList提供的Custom Sorting方法。