日期:2014-05-19  浏览次数:21020 次

帮我看看我这里有什么错!牛人请进
string   persIdSql   =   "select     case   when   max(convert(bigint,pers_id))   is   null   then   0   else   max(convert(bigint,pers_id))   end   +100000001   as   id   from   tab_pers_info ";
string   id   =   (new   SqlDb()).Tb(persIdSql).Rows[0][ "id "].ToString();
char   persid   =Convert.ToChar(   id.Substring(1,   id.Length   -   1));

我有这样一个表

表1

pers_id           pers_name
00000001         小红
00000002         小张
00000003         小华

这个时候我想插入这样的记录   00000004       小陈

就变成了下面这样
pers_id           pers_name
00000001         小红
00000002         小张
00000003         小华
00000004         小陈

请问怎么实现


------解决方案--------------------
1.建个function或者sp-----获取pers_id
2.每次插入时,pers_id就从那个function或者sp处取值即可.

注:为了防止并发操作,建议具体获取方法为:

1.新建一个表,包含一个自增长字段id
2.每次都取不通的id出来
3. c#将此id格式化,类似你的(00000004 ).