dt.DefaultView.Sort = "sn DESC";
            ds.Tables.Add(dt);                    ds.Tables[0].DefaultView.Sort = "sn DESC";
                    foreach (DataRow dr in ds.Tables[0].DefaultView.Table.Rows)
                    {
还是默认的。这个应该是降序了。但FOREACH得到结果时没有降。

解决方案 »

  1.   

    DataRow dr in ds.Tables[0].DefaultView.Table.Rows??????你取的本来就是原始table,而非DefaultView
      

  2.   

    你可以在DataTable.Select()方法写啊
    DataTable.Select("sn DESC")
      

  3.   


    DataView dv = dt.DefaultView;
    dv.Sort = "sn DESC";
    dt= dv.ToTable();//之后再往下执行
    ds.Tables.Add(dt);
    ... ...
      

  4.   

      ds.Tables[0].DefaultView.Sort = "sn DESC";
       foreach (DataRowView dr in ds.Tables[0].DefaultView)
       {
            int i = (int)dr["ID"];
       }
      

  5.   

    DataView有筛选和排序功能:
    排序用.Sort
    筛选用.RowFilter
     比如:
    dv.Sort = "sn DESC";
    dv.RowFilter = "id>30";DataTable的Select貌似是筛选,结果为DataRow[]
      

  6.   

    dataset to Linq 支持排序  
    DataTable.Select("sn DESC")或者直接查询语句中排序好,绑定输出