2008-09-30 130 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()函数调用表达式。