打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
asp.net 多用户流水号有关问题
 asp.net 多用户流水号问题
数据库储存了员工编号ZF-0358,让操作员1新建员工档案前获取为ZF-0359,而操作员2新建员工档案获取员工编号为ZF-0360。
但目前如果操作员1、2同时新建员工档案时,他们获取的新编号均为ZF-0359。如何操作避免多用户并发申请新员工编号时出现重复编号以及跳号问题?
------解决方案--------------------
首先,编程方式不可能防止跳号!编程是较低级的工作,更关键地是你的业务逻辑处理。比如说1、2、3都创建了流水号,然后2和3都确定保存了,而1放弃了,那么此时显然会跳号的。

而分配流水号其实很简单。假设你有专门的一个“最后流水号”表,这个表里只有一条记录,就上保存最后使用过的流水号,那么你可以写
    update [最后流水号] set [编号]=[编号]+1
       select [编号] from [最后流水号]

执行它时,要在一个事务中执行(假设使用sql server,参考msdn文档)。由于sql server的事务处理级别的规定, 这就不可能并发。
------解决方案--------------------
其实两个问题可以归为一个问题,解决办法如下:
1 员工编号生成的时机应该是在保存新记录的时候,这样就不会导致员工编号脱离数据库存在的情况
2 查询当前最大员工编号,生成新的编号等一系列 SQL 语句应该在同一个事务中执行。
请试一下吧 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[原创]ZForumsV4.1图文安装教程(Win2003) - ZForums 论坛V4.1 - zFans.net
勤哲Excel服务器
Sql server 2005安装时ASP.Net版本注册要求警告的解决办法
介绍几种开源的内容管理系统(CMS)与大家分享(ASP.Net_c#)
Altairis Simple ASP.NET SQL Providers
Asp.net sql2000制作信息发布系统
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服