添加一些人到DB中,他们的ID增长采用了 connt++的方式,不能重复,即系第一个人的ID为1,第二个人的ID为2...以此类推。问题是,当我delete一个人之后(假如ID为2的人),那DB上就只有1.3.4.5...了但当我继续添加第六个人时,就出错了。因为count++,1.3.4.5(系统默认成为1.2.3.4),所以,第六个人的ID为5,与之前的5重复,有冲突。添加不能成功。我知道只要将SQL的语句中的count改为MAX就可以解决这个问题,但是,现在面对的是客户,客户在用着系统,不能update数据库,也由于政治原因不能接触数据库。如果全部删掉那5条数据,重新增加,也不行,因为3.4.5都有人在调用着借问一声,各位大大,有什么妙招没?本人在线等~~~
(
ID int identity(1,1) primary key,
num int
)
insert into #TT select 1
insert into #TT select 2
insert into #TT select 3
insert into #TT select 4
insert into #TT select 5delete from #TT where ID=5insert into #TT select 6select * from #TT
ID num
----------- -----------
1 1
2 2
3 3
4 4
6 6
(
ID int identity(1,1) primary key,
num int
)
insert into #TT select 1
insert into #TT select 2
insert into #TT select 3
insert into #TT select 4
insert into #TT select 5delete from #TT where ID=5insert into #TT select 6select * from #TTdelete from #TT where ID=1
insert into #TT select 1select * from #TT
ID num
----------- -----------
2 2
3 3
4 4
6 6
7 1
第一,现在的都在用着,肯定不能删除,
第二,不能更新,是因为涉及到政治的原因,不能接触他们的DB,也是这个原因。
第三,代码如下private String getNewPersonNo(String MemberID)
{
String newPersonNo = "";
SqlCommand sqlCmd = new SqlCommand("SELECT MemberID,MembershipNo + '-' + RIGHT('00' + CONVERT(NVARCHAR,(SELECT count(PersonNo) + 1 FROM MEMBER_SubMember WHERE MemberID = @MemberID)),2) AS NewPersonNo FROM MEMBER_Member WHERE MemberID = @MemberID", _sqlConn);
sqlCmd.Parameters.Add("@MemberID", SqlDbType.Int).Value = MemberID;
SqlDataReader sqlDR = sqlCmd.ExecuteReader();
if (sqlDR.Read())
{
newPersonNo = sqlDR["newPersonNo"].ToString();
}
sqlDR.Close();
return newPersonNo;
}
第四,大家看清楚点哈,现在由于政治原因,不能接触数据库,不能update,只能看着网站想办法添加多一个人谢谢~~
2、Oracle:sequence
3、不能改数据库:取max,不要取count别无他路……
{
int iSerial = 1;
foreach (DataRow dr in YourDataTable.Rows)
{
if (int.Parse(dr[Serial].ToString()) == iSerial)
{
iSerial++;
}
else
{
break;
}
}
return iSerial;
}
是不是谁删除了才遇到这个BUG的
那就把那个删除的恢复 照旧用 ,发个通知禁止删除 不删除 就没BUG了
除非,配置里预留了这个bug的开关...
谢谢哥们了,其实这些都已经做了的,也已经fixed所有的bug了,但是某种原因它就不让你update啊所以那时候要我解决我也很无奈还好带我的人厉害,系统是他写的。呵呵
http://download.csdn.net/source/1842593】