在进行排序的时候,排序的字段因为是填充进来的,所以变成了字符型,如下:
DataView dv = new DataView(table);
dv.Sort="number DESC";
上面代码中"number"目前为字符型,所以在排序上有点问题,有没有什么办法可以把类型转换过来啊?

解决方案 »

  1.   

    如果没有其他的需求,可以在sql取数的时候转换
      

  2.   

    number本身在数据库中就为"整型",由于是一个table从N个table中取出来的值,所以新生成的table的"number"字段就成了字符型去了.
      

  3.   

    在datatable添加列的时可以定义类型
    dc.ColumnName = "sex";
    dc.DataType =typeof(System.Int32);//定义为整型
      

  4.   

    在datatable添加列的时可以定义类型
    dt.Column.add("列名",typeof(int))
      

  5.   

    如果列是SQL中存在的呢..但值去是填充进去的.
    那应该怎么处理>
      

  6.   

    dv.Table.Columns.Add(new DataColumn("ming",typeof(String)));
      

  7.   

    重写table或干掉 那一列 加一列 循环插入数据 当然 数据要conver你想要的类型
      

  8.   

    xinfan(新凡) 
    目前排序就是如下:
    958
    99
    96
    885
    84
    8
    8
    这样的顺序了.
      

  9.   

    我怎么能正常显示呢 
    =============================================
    DataTable dt = new DataTable();
    dt.Columns.Add("name",typeof(System.String));
    dt.Columns.Add("No",typeof(System.String));
    //假如你绑定的数据是这样
    DataRow dr = dt.NewRow();
    dr["name"] = "张三";
    dr["No"] = "958";
    dt.Rows.Add(dr);DataRow dr1 = dt.NewRow();
    dr1["name"] = "李四";
    dr1["No"] = "99";
    dt.Rows.Add(dr1);DataRow dr2 = dt.NewRow();
    dr2["name"] = "王五";
    dr2["No"] = "885";
    dt.Rows.Add(dr2);DataRow dr3 = dt.NewRow();
    dr3["name"] = "其他";
    dr3["No"] = "88";
    dt.Rows.Add(dr3);//现在只有两列 name 和 No
    //再+一列 sex
    DataColumn dc = new DataColumn();
    dc.ColumnName = "sex";
    dc.DataType =typeof(System.Int32);
    dt.Columns.Add(dc); //然后在新列中添加值
    for(int i=0;i<dt.Rows.Count;i++)
    {
    if(dt.Rows[i]["name"].ToString()=="张三")
    dt.Rows[i]["sex"] = "1";
    if(dt.Rows[i]["name"].ToString()=="李四")
    dt.Rows[i]["sex"] = "2";
    else
    dt.Rows[i]["sex"] = "3";
    }DataView dv = new DataView(dt);
    dv.Sort="name desc";
    DataGrid1.DataSource = dv;
    DataGrid1.DataBind();
    =================================
    name 为string型 也能像int一样排序呀 
    难不成 你数据中有空格之类的?