2009-04-20 94 views
2

如果我有两个字符串,我需要他们在ASCII顺序(而不是固定区域性的顺序)比较,我可以普遍使用:数据表列排序ASCII顺序,不

int c = String.Compare(a, b, StringComparison.Ordinal); 

如果我有一个DataTable,我希望其中一列使用DataView的Ordinal字符串比较进行排序,我该如何解决它?

回答

1

不幸的是,没有什么内置方便的自定义在DataView排序逻辑;这是我的主要抱怨之一,也是我们决定在旧工作中推出自己的数据访问层的原因之一。

虽然我不知道如何可行,这将是为你做的,要真正做到这一点,你就需要另一列在根据自己的阵列添加到您的表作为一个int,然后进行排序行比较逻辑,则阵列中的索引存储在你的int柱。然后,而不是由intstring列的顺序排序。

但是,我确实意识到这不能满足像GridView那样完成的自动排序之类的事情,并且它不会计算在计算排序位置后发生的数据更改。不幸的是,我认为没有什么能够真正帮助解决这个问题。

如果你正在寻找真实的排序此,检查,看看你的视觉控制支持自定义排序机制。这就是我可以建议的一切。

0

如果可能的话,当你创建DataTable与查询,让查询该列转换为数字列:

SELECT *, CAST(your_column AS int) AS your_column_int 
FROM your_table 
ORDER BY your_column_int