如果用SqlDataAdapter读数据最后的结果是在一个Table里,有Sort属性,可以用来排序,
但是用SqlDataReader里没有Sort属性,是不是要想排序就要用SqlDataAdapter

解决方案 »

  1.   

    排序是数据库擅长的事情,最好还是放在sql中做,效率比在程序里面要好很多。
      

  2.   

    SqlDataReader 不可以排序吧!
      

  3.   

    可以排序的,
    你只要先用SQL排好序就行了,
    先连数据库,
    sourse="data sours..........."
    string select="select * from 表 order by desc"
    SqlConnection conn =new SqlConnection(sourse);
    conn.open();
    SqlCommand cmd=new SqlCommand(select,conn);
    SqlDataReader reader=cmd.ExecuteReader();
    呵呵
    就行了,
      

  4.   

    我一般是用页面缓存来存放DataTable,给他的DataView排序
      

  5.   

    DataView排序:
    <%@ Import Namespace="System.Data" %><html>
     
    <script language="C#" runat="server">    string SortField;    ICollection CreateDataSource() {
            DataTable dt = new DataTable();
            DataRow dr;        dt.Columns.Add(new DataColumn("整数值", typeof(Int32)));
            dt.Columns.Add(new DataColumn("字符串值", typeof(string)));
            dt.Columns.Add(new DataColumn("日期时间值", typeof(DateTime)));
            dt.Columns.Add(new DataColumn("布尔值", typeof(bool)));
            dt.Columns.Add(new DataColumn("货币值", typeof(double)));        for (int i = 0; i < 9; i++) {
                dr = dt.NewRow();            dr[0] = 9-i;
                dr[1] = "项 " + i.ToString();
                dr[2] = DateTime.Now;
                dr[3] = (i % 2 != 0) ? true : false;
                dr[4] = 1.23 * (i+1);            dt.Rows.Add(dr);
            }        DataView dv = new DataView(dt);
            dv.Sort = SortField;
            return dv;
        }    void Page_Load(Object sender, EventArgs e) {
            if (!IsPostBack) {
                if (SortField == "") {
                    SortField = "IntegerValue";
                }    
                BindGrid();
            }    
        }    void MyDataGrid_Sort(Object sender, DataGridSortCommandEventArgs e) {
            SortField = (string)e.SortExpression;
            BindGrid();
        }    void BindGrid() {
            MyDataGrid.DataSource = CreateDataSource();
            MyDataGrid.DataBind();
        }
    </script><body>    <h3><font face="宋体">DataGrid 中的基本排序</font></h3>    <form runat=server>      <ASP:DataGrid id="MyDataGrid" runat="server"
            AllowSorting="true"
            OnSortCommand="MyDataGrid_Sort"
            BorderColor="black"
            BorderWidth="1"
            CellPadding="3"
            Font-Name="宋体"
            Font-Size="8pt"
            HeaderStyle-BackColor="#ccccff"
            HeaderStyle-ForeColor="black"
          />  </form></body>
    </html>