2008-09-30 135 views
0

我有一個包含幾列的DataSet。其中一列是大部分時間的數字。因爲它偶爾是一個字符串,在數據庫中它是一個varchar(10)列。DataSet列的自定義排序

但是,當你整理一個VARCHAR列,它按它像一個字符串。我想要做的就是嘗試重寫這個方法,以便整數類型整數;這並不是那麼難,而且我已經有了一個可以在我的代碼中的其他地方執行此功能的函數。但是,我不認爲有可能像我有一個自定義類型的自定義排序實現一樣提供類型化的DataSet,並且從我所看到的BindingSource根本不會考慮列,這使得很難排序他們。我可以很容易地使用ListView/DataGridView排序功能來做到這一點 - 但我希望顯示器處於虛擬模式,因爲我擁有的數據量很大,爲此我需要提供自己的排序。

有沒有辦法做我想做的事?

回答

2

我認爲最好的方法是添加其轉換爲varchar(10)爲int一個新的計算列,和排序上。

myDataTable.Columns.Add("Sorter", typeof(System.Int32), "Convert(TextColumn, 'System.Int32')"); 

這將引發異常時,在你的VARCHAR列的字符串(我已經被稱爲在上面的代碼「TextColumn」),但您可能能夠解決該使用IIF()函數調用表達式。