首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

不能在对象中安插重复键

2013-09-30 
不能在对象中插入重复键得ID都是通过存储过程处理IDID+1;为什么服务生成数据的时候 就会产生重复ID服务自

不能在对象中插入重复键
得ID都是通过存储过程处理ID=ID+1;为什么服务生成数据的时候 就会产生重复ID

服务自动生成报表数据不行报错,手动生成又可以;两种处理方式代码一模一样。

为什么呢?!
[解决办法]
ID设置为自动增长好了。干嘛要手工指定呢?
[解决办法]
如果编号有特别,如要求A或B或C开头,那要写存储过程生成,如果编号没有什么意义,就用自动递增ID就可以了
[解决办法]

引用:
得ID都是通过存储过程处理ID=ID+1;为什么服务生成数据的时候 就会产生重复ID

服务自动生成报表数据不行报错,手动生成又可以;两种处理方式代码一模一样。

为什么呢?!


为你的 ID=ID+1 这一行代码前后加上
lock(StaticLockObject)
{
    .....
}

这样的代码。
[解决办法]
如果你是远程客户端通过关系数据库的远端驱动程序去执行 ID=ID+1,没有将业务服务(应用服务)独立出来,那么加锁就没用了。

那么需要修改你的数据库设计,应该使用guid等随机编号,而不是这类 ID+1 编号。
[解决办法]
获取最大ID+1
select isnull(max(ID),0)+1 from Table
[解决办法]
ID 一般用uniqueidentifie类型 

热点排行