我正在做一个大赛的网上报名系统,其它的都算顺利,就是关于自动生成报名号的问题上出了点麻烦,我试了很多种方法都没有达到预期的效果,所以要求救于网上的各位高手了。大体需求如下:
数据库里有一张表,表里存着参赛选手的(报名号,姓名,性别,年龄,参赛题目),参赛选手从网上进入该系统的报名页面,报名页面的最上面是系统自动为其分配的报名号。选手填完姓名,性别,年龄,参赛题目信息后点“提交”,(报名号,姓名,性别,年龄,参赛题目)将插入数据库。要求:报名中的报名号是连续的(09010001,09010002,09010003.),报名号不能重复,请问该怎么实现啊?补充:某一时刻可能有多的用户在报名。
数据库里有一张表,表里存着参赛选手的(报名号,姓名,性别,年龄,参赛题目),参赛选手从网上进入该系统的报名页面,报名页面的最上面是系统自动为其分配的报名号。选手填完姓名,性别,年龄,参赛题目信息后点“提交”,(报名号,姓名,性别,年龄,参赛题目)将插入数据库。要求:报名中的报名号是连续的(09010001,09010002,09010003.),报名号不能重复,请问该怎么实现啊?补充:某一时刻可能有多的用户在报名。
你的表中有一个BOOL型字段,记录某个参赛者是否中途退出,那么就算这个人失踪了也不影响报名号的连续性,只不过处在这一位的这个人“挂起”罢了。你的关键问题应该是资源争用。一个好的数据库系统应该自己可以处理资源争用的问题吧。如果非要在你的程序端处理资源争用的话,你自己写一个CriticalSection就好了。或者使用mutex类。
这样它就会在数据插入时,自动生成,不能更改,不能输入的。
id int identity(1,1) primary key not null,--生成报名号
--然后提取id在SQL语句中写上select @@identity
1. 在数据库表设计的时候,将ID设为主键并自动增加,即可以实现要求;
2. 在应用程序中,创建一个Singleton专门用来取号
楼主,你make a confession吧。