我绑定一张表,有一个字段EmpID,我在DgEmp_SortCommand事件中按照EmpID排序,但是排序出来的结果是
1
11
12
13
2
21
22
23
3
31
32
32
.
.
.
我知道这是因为再DataGrid中它是按照字符串来排序的,但是怎么样才能转换,让它按照整型类型来排序啊(EmpID表中的字段为int)。
dt.DefaultView.Sort=e.SortExpression+"  "+sort;
DgEmp.DataSource=dt;
DgEmp.DataBind();

解决方案 »

  1.   

    DataView dv=dt.DefaultView;
    dv.Sort=" id asc";
    dg.DataSource=dv;
    dg.DataBind();
      

  2.   

    有个想法,不知能否行的通。
    datatable对象,有一个columns集合属性。
    你可以在dt中用加入列的方法,加入一列。该列为计算列,将此列的值,转换成数值类型。
    再按此列排序。
      

  3.   

    你在sql里边就开始EmpID 排序啊  如果你要把字符改为int 型 可以用toInt32看看啊
      

  4.   

    select * from 表 order by convert(int,EmpID)
      

  5.   

    select cast(empid as int) as a from table order by a
    不知道是否可以