博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考
阅读量:7083 次
发布时间:2019-06-28

本文共 2500 字,大约阅读时间需要 8 分钟。

我们在日常开发项目过程中往往需要各种订单单号的产生方法,而且是支持多用户并发、支持多种数据库的,我们并不想为每个项目都写一些独立的代码去实现这些功能,往往需要有个通用的函数比较爽一些。

 下面我们以C#.NET通用权限管理系统组件源码的做法,给大家来一个参考,下面是序列(流水号)管理器的效果,这里保存着各种需要的当前状态。

2011022801.png

 这里是代码的具体位置参考

2011022802.png

这里是程序运行效果参考,可以通过函数获取当前的序号、编号等等,可以灵活设置要几位长度的编号,是否补前导零,从几开始编号等等。

2011022803.png

这个是服务层的并发处理方法参考

2011022804.png

这里是具体的页面上的代码参考,程序里只需要一行代码,就可以获取自动流水号、序号、编号等全智能的实现,用起来会很爽,而且可以生成各种类别的订单号,甚至可以讲是任意的都可以,不要折腾太多飞机了,而且还支持多种数据库,不用针对每种数据库又编写代码了,哪个项目都可以灵活用,全部的源码也可以提供。

//
--------------------------------------------------------------------
//
 All Rights Reserved , Copyright (C) 2011 , Hairihan TECH, Ltd. 
//
--------------------------------------------------------------------
using
 System;
namespace
 DotNet.WebForm
{
using
 DotNet.Service;
///
<remarks>
///
 OrderNumber
///
 序号产生方式、并发序号发生、唯一编号产生
///
///
 修改纪录
///
///
        版本:1.0 2011.02.28    JiRiGaLa    初步创建。
///
///
 版本:1.0
///
<author>
///
<name>
JiRiGaLa
</name>
///
<date>
2011.02.28
</date>
///
</author>
///
</remarks>
public
partial
class
 OrderNumber : BasePage
   {
protected
void
 Page_Load(
object
 sender, EventArgs e)
       {
       }
private
void
 GetOrderNumber()
       {
string
 orderName 
=
string
.Empty;
//
 1.按年产生订单序号。
           orderName 
=
"
Order:
"
+
 DateTime.Now.ToString(
"
yyyy
"
);
//
 获取原编号
//
 ServiceManager.Instance.SequenceService.GetOldSequence(this.UserInfo, fullName, 0, 5, true);
//
 这里是编号增加一的动作
this
.txtOrderNumber1.Text 
=
 ServiceManager.Instance.SequenceService.GetNewSequence(
this
.UserInfo, orderName, 
0
5
true
);
//
 2.按年月产生订单序号。
           orderName 
=
"
Order:
"
+
 DateTime.Now.ToString(
"
yyyyMM
"
);
//
 ServiceManager.Instance.SequenceService.GetOldSequence(this.UserInfo, fullName, 0, 5, true);
//
 这里是编号增加一的动作
this
.txtOrderNumber2.Text 
=
 ServiceManager.Instance.SequenceService.GetNewSequence(
this
.UserInfo, orderName, 
0
5
true
);
//
 3.按年月日产生订单序号。
           orderName 
=
"
Order:
"
+
 DateTime.Now.ToString(
"
yyyyMMdd
"
);
//
 ServiceManager.Instance.SequenceService.GetOldSequence(this.UserInfo, fullName, 0, 5, true);
//
 这里是编号增加一的动作
this
.txtOrderNumber3.Text 
=
 ServiceManager.Instance.SequenceService.GetNewSequence(
this
.UserInfo, orderName, 
0
5
true
);
//
 4.按类别产生订单序号。
           orderName 
=
"
Order:
"
+
"
StockOut
"
;
//
 ServiceManager.Instance.SequenceService.GetOldSequence(this.UserInfo, fullName, 0, 5, true);
//
 这里是编号增加一的动作
this
.txtOrderNumber4.Text 
=
 ServiceManager.Instance.SequenceService.GetNewSequence(
this
.UserInfo, orderName, 
0
5
true
);
       }
protected
void
 btnGetOrderNumber_Click(
object
 sender, EventArgs e)
       {
this
.GetOrderNumber();
       }  
   }

本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1200771,如需转载请自行联系原作者
你可能感兴趣的文章
今天挨批了
查看>>
Func和Action的用法区别
查看>>
莫名其妙的js脚本文件引用不到
查看>>
转:Android开发之旅:环境搭建及HelloWorld
查看>>
Red–black tree ---reference wiki
查看>>
阅读uboot
查看>>
不要为自己找借口,你可以做到的--职场实用做人法则
查看>>
CentOS 6.3下Samba服务器的安装与配置详解
查看>>
JAVA中的字节流与字符流
查看>>
[原创].NET 分布式架构开发实战之三 数据访问深入一点的思考
查看>>
信息属性列表关键字 info.plist
查看>>
2014第12周二学习记
查看>>
SQLServer2005中的CTE递归查询得到一棵树
查看>>
关于营销管理的认知
查看>>
ADO.NET:连接数据字符串
查看>>
全球酷站秀:15个顶尖的 CSS3 网站作品
查看>>
c语言关键字总结
查看>>
DB2中OLAP函数使用示例
查看>>
sql经典语句收集
查看>>
Java代码通过API操作HBase的最佳实践
查看>>