2009-04-20 95 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