| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 977 人关注过本帖
标题:商品销售单号问题!
只看楼主 加入收藏
hksyw
Rank: 1
等 级:新手上路
帖 子:171
专家分:6
注 册:2006-2-21
结帖率:37.5%
收藏
 问题点数:0 回复次数:4 
商品销售单号问题!
现在开发一个商品销售页面。
在销售的时候会产生一个单号,这个单号必须比上一个单号大1,
比如上一个单号是201202250010001,
那么新产生的单号就得是201202250010002
这个怎样做?还要考虑两台电脑同时销售会不会占用同一个单号,

在线等!急急急
搜索更多相关主题的帖子: 商品销售 台电脑 在线 开发 
2012-02-25 17:31
hksyw
Rank: 1
等 级:新手上路
帖 子:171
专家分:6
注 册:2006-2-21
收藏
得分:0 
没人回吗?

2012-02-26 10:02
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
20120225  0010001 拆分成两部分 前边是年月起 这个不细说 LZ自己会取 后面是0010001 你把它变成字符串 例如 "1"+0010001.ToString()
然后在转换成数字加1  double.parse( ("1"+0010001.ToString() ))+1   
考虑到多台计算机 你可以把生成的销售单号存到一个数据库表里  这样就可以避免两个机器生成一样的 也可以判断是否重复
这里重要的一点 就是插入的时候 要对这个表 加锁 这样可以避免这两条相同的记录同时插入的情况 希望对LZ有帮助

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2012-02-27 16:41
hksyw
Rank: 1
等 级:新手上路
帖 子:171
专家分:6
注 册:2006-2-21
收藏
得分:0 
谢谢!版主,虽然我还没有解决问题,但对版主
的回复,还是非常感激!

2012-03-05 09:54
hksyw
Rank: 1
等 级:新手上路
帖 子:171
专家分:6
注 册:2006-2-21
收藏
得分:0 
以下是引用wangnannan在2012-2-27 16:41:42的发言:

20120225  0010001 拆分成两部分 前边是年月起 这个不细说 LZ自己会取 后面是0010001 你把它变成字符串 例如 "1"+0010001.ToString()
然后在转换成数字加1  double.parse( ("1"+0010001.ToString() ))+1   
考虑到多台计算机 你可以把生成的销售单号存到一个数据库表里  这样就可以避免两个机器生成一样的 也可以判断是否重复
这里重要的一点 就是插入的时候 要对这个表 加锁 这样可以避免这两条相同的记录同时插入的情况 希望对LZ有帮助
插入的时候加锁,
insert into person with (holdlock) ([Name],Age) values ('a',20),这条我插入了一万条
下面是没有加锁的插入
insert into person (Name,Age) values('b',30)这条我插入了一条
问题出来了,插入的b在那一万条中间而不是最后,
我的加锁是不是不正确,,那正确的加锁应该怎么写呢????

2012-03-05 11:26
快速回复:商品销售单号问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019510 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved