为了谢谢大家的回答,另开贴问上个问题的问题!

meilian01 2004-11-09 02:04:47
上贴的位置

http://community.csdn.net/Expert/topic/3534/3534192.xml?temp=.5518915



假如今天的日期是: 2004/11 的第十条与第二十八条记录则序号是: AKAJ 与 AKBA

其中第一个A代表2004年,从2004开始算,则2005 年是 B

K代表是11月份。


这样,我每次都得从表里查找最新的编号!然后再生成!担心效率问题

想问问各位高手,有没更好的方法?



...全文
87 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jedliu 2004-11-09
  • 打赏
  • 举报
回复
楼上说的太对了!
brightheroes 2004-11-09
  • 打赏
  • 举报
回复
我觉得,你在存盘之前,不要展示给客户那个号,因为没有存盘之前,根本没有必要展示给他们,存盘之后,再展示给他们,不也是一样:D

你可以再存盘之前,那个编号的Label上,写上"未保存"之类的信息


这样,在你保存的存储过程里面,保存成功之后,返回新生成的编号不就可以了。

ps:用事务,或者是存储过程里面,或者是调用存储过程的时候。
hebookboy 2004-11-09
  • 打赏
  • 举报
回复
学习一下
meilian01 2004-11-09
  • 打赏
  • 举报
回复
to:brightheroes(闭关|那一剑的风情)
谢谢你的提醒!
我的数据是SQL的,支持函数的!

我可以建一个发号表!只是这样每条记录我就要两次调用函数及发号表!

在未保存之前我生成一个序号,存盘的时候再去调用一次,只是这样如有并发操作,保存的序号就是刚开始显示给用户看的那个序号了!
xiaoslong 2004-11-09
  • 打赏
  • 举报
回复
帮你顶一下
suntonycomm 2004-11-09
  • 打赏
  • 举报
回复
再则,光统计一个count应该没有什么问题。
brightheroes 2004-11-09
  • 打赏
  • 举报
回复
这样的编号,最好的处理方式,也是最科学的处理方式
是在数据库中做一个函数(或者一个存储过程配合一个发号表)来处理

不可能保存之前,先读取,然后用c#来计算,然后传入

这样并发操作就完蛋了

至于说,用表来存放这些A,B,C,D之类的,我觉得是没有必要,一个小函数足以解决问题

我在你的上一个帖子里面模拟写了一个,你修改修改就可以完成这个功能了。

当然,如果你的数据库不支持函数.......

就在前台处理吧

suntonycomm 2004-11-09
  • 打赏
  • 举报
回复
我看这种问题,只有这样的解决办法了。
xiaohutushen 2004-11-09
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧