我正在做一个大赛的网上报名系统,其它的都算顺利,就是关于自动生成报名号的问题上出了点麻烦,我试了很多种方法都没有达到预期的效果,所以要求救于网上的各位高手了。大体需求如下:
     数据库里有一张表,表里存着参赛选手的(报名号,姓名,性别,年龄,参赛题目),参赛选手从网上进入该系统的报名页面,报名页面的最上面是系统自动为其分配的报名号。选手填完姓名,性别,年龄,参赛题目信息后点“提交”,(报名号,姓名,性别,年龄,参赛题目)将插入数据库。要求:报名中的报名号是连续的(09010001,09010002,09010003.),报名号不能重复,请问该怎么实现啊?补充:某一时刻可能有多的用户在报名。

解决方案 »

  1.   

    感觉不会是难题啊……你的表会自己能一个索引,这个是顺序生成的,你向里面追加一条记录,该索引就加1,保证连续。
    你的表中有一个BOOL型字段,记录某个参赛者是否中途退出,那么就算这个人失踪了也不影响报名号的连续性,只不过处在这一位的这个人“挂起”罢了。你的关键问题应该是资源争用。一个好的数据库系统应该自己可以处理资源争用的问题吧。如果非要在你的程序端处理资源争用的话,你自己写一个CriticalSection就好了。或者使用mutex类。
      

  2.   

    在数据库里面把报名好设为主键,标识符为09010001,标识种子为1。SQL代码为: ID int identity(09010001,1) primary key,   
    这样它就会在数据插入时,自动生成,不能更改,不能输入的。
      

  3.   


       id int identity(1,1) primary key not null,--生成报名号
        --然后提取id在SQL语句中写上select @@identity
      

  4.   

    两种解法:
    1. 在数据库表设计的时候,将ID设为主键并自动增加,即可以实现要求;
    2. 在应用程序中,创建一个Singleton专门用来取号
      

  5.   

    这个世道...嗯...
    楼主,你make a confession吧。