打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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, 05true);

            // 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, 05true);

            // 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, 05true);

            // 4.按类别产生订单序号。
            orderName = "Order:" + "StockOut";
            // ServiceManager.Instance.SequenceService.GetOldSequence(this.UserInfo, fullName, 0, 5, true);
            
// 这里是编号增加一的动作
            this.txtOrderNumber4.Text = ServiceManager.Instance.SequenceService.GetNewSequence(this.UserInfo, orderName, 05true);
        }

        protected void btnGetOrderNumber_Click(object sender, EventArgs e)
        {
            this.GetOrderNumber();
        }  
    }

} 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
吃货联盟-源代码-Java初级小项目
Excel函数应用篇:函数Vlookup
Hibernate中inverse="true"的理解
如何给老婆解释什么是Restful
学习Java6(六) ---嵌入式数据库 Derby
cancel_capacity_reservation
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服