ds.Tables[0].DefaultView.Sort="id desc";因为在XML中,ID是字符串类型,所以在dataGrid里显示出现问题:
5
4
3
16
15
12
11实际上应该排序是:
16
15
12
11
5
4
3这个问题如何解决?怎么样才能把ID转换为int类型排序呢?

解决方案 »

  1.   

    字符串比较肯定是第一个比较了比较第二个了.转换成int的方法如楼上
      

  2.   

    可是不能这么写吧: ds.Tables[0].DefaultView.Sort="Convert.ToInt32('id') desc"; 出错的.
      

  3.   

    试试"Convert(int, id) desc "
      

  4.   

    在DataTable中,建立列[id]时,就指定其类型为int型。这样执行Sort="id desc"时,就能如你所愿了。
      

  5.   

    To oolongTea : 异常详细信息: System.IndexOutOfRangeException: 无法找到列 Convert(int。
      

  6.   

    To Santos(快乐的GG) : 你的意思是 创建DataTable,填充DataTable数据,返回DataTable ?
      

  7.   

    可以新增一个计算列,
    datacolumn IntID = newdatacolumn("IntID ",typeof(int));
    IntID .expresssion = "Convert(int, id)";
    ds.Tables[0].DefaultView.Sort="IntID  desc";
    试试吧
      

  8.   

    可以新增一个计算列,
    datacolumn IntID = new datacolumn("IntID ",typeof(int));
    IntID .expresssion = "Convert(int, id)";
    ds.Tables[0].DefaultView.Sort="IntID  desc";
    试试吧
      

  9.   

    zjlion(晴海) :异常详细信息: System.IndexOutOfRangeException: 无法找到列 IntID。
      

  10.   

    datacolumn IntID = new datacolumn("IntID ",typeof(int));
    IntID .expresssion = "Convert(int, id)";
    ds.Tables[0].Columns.Add(IntID );
    ds.Tables[0].DefaultView.Sort="IntID  desc";
      

  11.   

    异常详细信息: System.Data.EvaluateException: 未找到列 [int]。
    红色提示:ds.Tables[0].Columns.Add(IntID);这行错误
      

  12.   

    我想应该是上一行的Convert(int,id)中int的错误...-_-!=========同一个问题的另一个解决办法,碰到另一个问题======XmlNodeList nodeList = xmlDoc.SelectNodes("/AllNews/news");
    foreach(XmlNode xn in nodeList)//遍历子节点想问一下foreach如何倒序?或者如果用for如何写?
    for(int i=nodeList.Count;i>0;i--) 
    {
    //我这么写竟然
    //nodeList[i] 函数“nodeList.get_ItemOf”已求值并返回空
    //xn <未定义的值>
    XmlNode xn = nodeList[i];
    ....
    }哭!!!到处碰壁!
      

  13.   

    楼上的代码改成如下
    DataColumn IntID = new DataColumn("IntID", typeof(int));
    IntID.Expression = "Convert(ID, 'System.Int32')";
    ds.Tables[0].Columns.Add(IntID);
    ds.Tables[0].DefaultView.Sort = "IntID desc";
      

  14.   

    如果倒序应该从nodeList.Count - 1开始
    也就是
    for(int i=nodeList.Count-1;i>=0;i--) 
    {
        //todo
    }
      

  15.   

    呵呵,lovefootball(蟑螂) 的试试吧。
      

  16.   

    "Convert(ID, 'System.Int32')"; --这样就没问题了。 多谢老大!nodeList.Count-1 也可以了.呜呜,太感动了!