我在工作中遇到了一个问题,首先我先给大家说一下我的工作,使用vs2005+Access接手维护我们公司网站,但是老板提出一个问题,大家都知道,access数据库表里都有自动增长的id,公司要我在原来的基础上修改,原来表里的自动增长id例如:
1  2  3  4  5  6  7  8......100,这样的,当然,比如我删除编号为4和8两列,整体就变成了1  2  3  5  6  7  9  10......100因为是自动增长列,所以没有办法直接用程序去修改它,所以多增加了一列,目的和自动增长id列是一样的,但是唯一不一样是,
我插入数据  1 2 3 4 5 6 7 8 9 10 11....100  ,然后也在后台删除了编号为4和8的,最后显示的是1 2 3 4 5 6 7 8 9 10 11.....98   这样了弄了3个多小时,还是没有弄出来,希望哪位高手给我讲讲小弟谢谢了!
注意:以上的数据都是id,只是一种是系统自动增长id,一种是要我做的自己写的自动增长id

解决方案 »

  1.   

    如果是想显示出来和数据库中的id一致。为什么不用数据库中的id?
      

  2.   

    我插入数据  1 2 3 4 5 6 7 8 9 10 11....100  ,然后也在后台删除了编号为4和8的,最后显示的是 1 2 3 4 5 6 7 8 9 10 11.....98  这样了 如果这列是你手动更新的话,很容易造成混乱啊.
    在SQL Server中可以通过对列的设定实现这个问题,access不知道有没有.
    不行就得循环更新了
      

  3.   

    你是想连贯的显示数据的ID吧,就是不管中间删了多少条,最后显示的都是连贯的数据,对吧。
    用程序来实现,在你的数据绑定时,加一个变量作为ID,i=1,i++,就可以实现了。
      

  4.   

    显示的时候,不显示数据库中的id,显示datatable的行号+1不就行了?
      

  5.   

    这个难么?我先不考虑效率啊。当你删除了某条数据时,开始遍历现有数据,然后UPDATE一下不就可以了?
                     DataTable dt = GetDataOrderByID();
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        UpdateMyColumnByID(dt.Rows[i]["ID"]);
                    }
      

  6.   

    恩 对现实tabel 编号就行了  顶上面说法