最近帮客户做了个报价的东东,用C#.NET + ACCSSE做的,现在客户要求,新增记录是在插在中间的,例:数据库已有2条记录,现在要在这两条中间插一条,有没有哪位高手有办法实现呀.(实际记录可能有几万条,要求可以在任何位置插入)

解决方案 »

  1.   

    其实数据在数据库里的排放是无序的,这个功能的实现主要是看你的数据库主键是如何设置,以及你的sql语句是按照那个字段排序的。建议你根据字段用不同sql排序语句来实现这个功能。如果原有的字段不能满足要求,可以单独设置一个字段专门为这个功能排序。
    例如:设置字段orderKey.当插入发生时,将插入处以后的orderkey值都加1然后再按orderkey排序,就实现了你要的功能。
      

  2.   

    回LS几位,主键是名为ID的字段,用自动编号的方法
    juedaihuaihuai(绝代坏坏(beyond myself)) 提出的新增字段的那个方法我想到过,可是如果数据量大,要增加在前面的话,假设后面几千条数据的那个字段都要加1执行效率会不会太低了
      

  3.   

    这个是做不到的,id为自动编号的话,不太可能在9和10之间去插入一条数据.
    因为客户他所看到是实际上是你排序过的数据,也就是说数据的呈现方式是由你来订的.
    肯定是最终呈现给用户看的,不是他所希望的结果.所以,你应该是在数据的排序上做文章.例如:你可以自动加上一个人工排序的字段(sortfield),而这个字段可以由程序来控制,将当前数据的上一条的字段值和当前记录的字段交换,那你的程序就按这个字段来排序,客户所看到的实际上就是可以满足他要求的排序了.