vs吧 关注:5,634贴子:58,510
  • 0回复贴,共1

求大佬解答, dgv如何将数据按照数字大小排序?

只看楼主收藏回复


access数据库年龄是以文本保存,排序以字符串来排,所以导致10排在2前面,目前找到了几种解决办法,但是都有利有弊无法完全解决,求大佬解答一下:
1. SortCompare事件
if (e.Column.Name == "年龄")
{
e.SortResult = (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) > 0) ? 1 : (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) < 0) ? -1 : 0;
}
但是SortCompare一直进不去,我是用BindDataSource的方式绑定数据,后来我试了一下如果手动在dgv上输入数据是可以进到该事件里去的。
2. sql查询语句添加条件
"SELECT * FROM 表名 ORDER BY val(年龄)"; val或者cint可以达到这个效果

前面说了年龄是以文本格式保存,假如有个年龄为“1岁”,这种方法也是会报“数据类型不匹配”的错误


IP属地:广东1楼2023-03-29 14:06回复