ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考(C#.NET通用权限管理系统组件源码组成部分)...

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

  下面我们以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();
        }  
    }

} 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值