我把从数据库获取的数据集保存在 DataSet中,想获取其中最大的ID值,试了一下,好像不成功!
我把结果按ID降序排序后保存在 DataView 中,然后再获取第一行第一列值,结果并不是最大的,搞了半天也不明白?

解决方案 »

  1.   

    在DataSet和DateView中,默认的保存都是按照object来保存的,除非你指定数据类型。由于比较都是按照object.ToString()来比较的,所以,2 > 11。
      

  2.   

    int C=DataSet.Tables[xxx].Rows.Count
    int b=C-1
    DataRow rw
    rw=DataSet.Tables[xxx].Rows[b]
    不知道这样是否可以
      

  3.   

    如果可以的话楼主最好用sql语句来实现:
    select * from table order by id desc
      

  4.   

    也可以这样:
    .aspx文件:
    <asp:BoundColumn DataField="id" SortExpression="id" HeaderText="id"/>
    .cs:
    DataTable dt = myDs.Tables[0];
    DataView dv = new DataView(dt);
    dv.Sort = e.SortExpression;
    ItemsGrid.DataSource = dv;
    ItemsGrid.DataBind();
    你可以取第一行,因改就是id最大的
      

  5.   

    用sql语句或者把DataSet循环比较id ,转换成数字型,Convert.toInt32("id")
      

  6.   

    直接这样
    SELECT MAX(ID) FROM 表名
      

  7.   

    非常感谢各位
    我知道用SQL语句可以实现,但是由于特殊情况的需要,所以必须要首先把值读出来并存放到DataSet中后,再从DataSet中取出最大值我想知道,除了循环比较外,有没有其它方法获取 DataSet中 ID列的最大值? ID列是 int型
      

  8.   

    DataView 我也实现过,我是把已经排序的 DataSet 值保存到 DataView中,但是取得的值还是不正确,能不能给个例子代码?