DataTable 中varchar 转换为 Double 后重新 排序。

DataTable  查询出某个字段为varchar 类型的。不过里面存的为数字,需要进行排序。可是如果直接排序就会不对。因为为varchar类型的,需要转换一下。

方法一:

dt.Columns.Add("iPersonOrderSort", System.Type.GetType("System.Double"));
dt.Columns["iPersonOrderSort"].Expression = "Convert(tagvalue,'System.Double') ";
DataView dv = new DataView(dt);
dv.Sort = " iPersonOrderSort asc";//排序先转换为DataView,排序才能好使

 DataTable dtTempType =dv.ToTable();

方法二:

在SQL语句筛选的时候多加一列,用于排序。 
例如: 

select   Percent   as   strPercent,cast(Percent   as   int)   as   intPercent 
from   Table. 

那么在DataSet中会自动生成一列intPercent为int的. 
在DataView.SortExpression   =   "intPercent ";     //而不是 "strPercent ";

原文地址:https://www.cnblogs.com/smile-wei/p/4225515.html