比如有50条产品信息, 我在数据库建立了一个数字型ProductOrderID字段,这50条按照ProductOrderID字段来排列。假如我要把第40个产品提前到第一个显示。 如果我把ProductOrderID=40 update成1, 那原先1那個怎么變成2?后買的全部往后面退一個順序?

解决方案 »

  1.   

    你不一定要在数据库里面就排序啊, 
    查询结果出来, DataView可以排,数组可以排,SortedList都可以排
      

  2.   

    你绑定到控件的时候排序比如用DataView:
    DataTable data = GetDataFromDatabase(); // 从数据库取出数据
    // 加个列,排序用
    data.Columns.Add("temp", typeof(int));
    foreach(DataRow row in data.Select("ProductOrderID = 40"))
    {
       row["temp"] = 1;
    }// DataView排序,作为DropDownList数据源
    DropDownList1.DataSource = new DataView(data, "temp desc, ProductOrderID", null, DataViewRowState.CurrentRows);
    DropDownList1.DataBind();你也可以查询的时候就加列:
    select *, case when ProductOrderID = 40 then 1 else 0 end AS temp  
    from 表
      

  3.   

    最简单最适用的方法是自己添加一个列,比如10-20产品的列中值为2,而21-30的值为3,这样再
    Order by [列]             [DESC,ASC] 即可。
      

  4.   

    其实就是要实现类似论坛后台设置版面的显示顺序一样,
    除非后台设置的时候同时改所有producorderid。如果数据少那当然没问题, 但是如果50条,要全部改就麻烦了
    有其他实现方法吗?给个思路。
      

  5.   

    回:nov30th(HOHO``) 我要每个产品列值都一样哦,有时候我需要把第30显示在第一,有时候会把50显示在第二。
    就是想要实现我设置显示顺序怎样就怎么显示。。
      

  6.   

    更新:打漏字回:nov30th(HOHO``) 我要每个产品列值都不一样哦,有时候我需要把第30显示在第一,有时候会把50显示在第二。
    就是想要实现我设置显示顺序怎样就怎么显示。。
      

  7.   

    我的意思是你在  字段中  增加一个列,比如叫OrderCust。然后每个都给100要把20排第一,更改为99就可以。
      

  8.   

    我想到一个实现简单,设置方便的方法了。order by 发布日期要提升排列的数据, 我只要编辑更新下发布日期 就可以了。