博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考(C#.NET通用权限管理系统组件源码组成部分)...
阅读量:5734 次
发布时间:2019-06-18

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

  hot3.png

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

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

 

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

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

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

 

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

 

//
--------------------------------------------------------------------
//
 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();
        }  
    }

} 

 

转载于:https://my.oschina.net/iwenr/blog/227926

你可能感兴趣的文章
关于批处理-1
查看>>
Tomcat部署Web应用方法总结
查看>>
Python3 django2.0 字段加密 解密 AES
查看>>
CCNA实验之:网络地址转换(NAT)实验
查看>>
计算机网络原理笔记-停止等待协议
查看>>
洛谷P3763 [TJOI2017]DNA(后缀自动机)
查看>>
确定当前记录和下一条记录之间相差的天数
查看>>
NYOJ32:组合数(DFS入门)
查看>>
使用Callable和Future接口创建线程
查看>>
BZOJ 2568 比特集合
查看>>
sql语句返回主键SCOPE_IDENTITY()
查看>>
MongoDB培训
查看>>
机器学习开源项目精选TOP30
查看>>
python基础===对字符串进行左右中对齐
查看>>
一起谈.NET技术,ASP.NET缓存全解析6:数据库缓存依赖
查看>>
代码分析系列 内存执行过程
查看>>
iOS开发-邮件发送
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>