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

} 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网线制作相关基础知识

网线制作相关基础知识 一般线序&#xff1a; &#xff08;1&#xff09;T568A线序&#xff1a;绿白&#xff0c;绿&#xff0c;橙白&#xff0c;蓝&#xff0c;蓝白&#xff0c;橙&#xff0c;棕白&#xff0c;棕 &#xff08;2&#xff09;T568B线序&#xff1a;橙白&#xf…

Windows 8最值得期待的8大特性

Windows 8刚刚进入开发阶段&#xff0c;你对Windows 8有什么期待呢&#xff1f;Windows 8有望在2013年初发布&#xff0c;在未来两年内技术领域会发生什么样的变化呢&#xff1f;移动技术和云计算服务的飞速发展对Windows 8是否会产生重大影响呢&#xff1f;相信微软会走在时代…

Linux系统的服务器配置minicom接console线调试交换机的步骤

作者&#xff1a;chenhao 第一步&#xff1a;首先用yum安装mimicom yum install minicom输入命令后开始安装 在这里输入&#xff1a;y 这里也需要输入&#xff1a;y。安装完成。 第二步&#xff1a;配置minicom里面的参数 minicom -s选择Serial port setup,调试配置信息 …

mysql中文编码问题

源地址&#xff1a;http://canfly2010.javaeye.com/blog/571146 1&#xff0c;开发端&#xff1a; 在连接的URL加入UTF8&#xff1a; jdbc:mysql://localhost:3306/【数据库名】?useUnicodetrue&amp;characterEncodingUTF-8 2&#xff0c;数据库端&#xff1a;如果想让新安…

显示器主流连接线

作者&#xff1a;Liuweifei 1.VGA VGA&#xff08;Video Graphics Array&#xff09;即视频图形阵列&#xff0c;别名D-sub&#xff0c;是经典的15针均分为3排的蓝接口&#xff0c;不支持热插拔。VGA使用模拟信号进行传输&#xff0c;由于经历了将数字-模拟-数字的信号转换过…

GIS人眼中的“云GIS”

近几年来&#xff0c;云计算可谓是IT界最耀眼的明星&#xff0c;从最初的概念炒作到逐渐被用户所接受&#xff0c;并在一些重点行业开始具体的实践&#xff0c;其发展速度之快&#xff0c;影响范围之广让人咋舌。 在大家都在思考如何使用云计算服务&#xff0c;如何能够享受…

OSI七层协议讲解

作者&#xff1a; WYF OSI七层协议讲解 如图从下到上可分为七层 物理层&#xff1a;比如说我们电脑连接一根网线&#xff0c;电脑数据通过网线传出去的过程&#xff0c;就是物理层&#xff0c;相当于一个传输介质&#xff0c;比如说网线、光纤、电缆等。就是定义了网线、光…

Windows Server 2012学习

Windows Server 2012学习 用windows系统来架构网络&#xff0c;以便将资源共享给网络上的用户。 windows的网络架构大致可以分为工作组&#xff08;workgroup&#xff09;架构&#xff0c;域&#xff08;domain&#xff09;架构与前两者的混合架构。 一、工作组架构为分布式…

Office2010升级前期准备

公司10年年底进行了全国总部及各办事处、分店Office 2010升级部署&#xff0c;升级主机超过上千台。其中总部客户端主机入域并且只有普通用户权限限定&#xff0c;办事处、分店主机均有专线连接而无入域且客户端均拥有管理员权限。项目已经完成&#xff0c;跟大家分享一下整个过…

虚拟机配置IP

2021.1.22 HYP 虚拟机连接局域网需要配置ip 配置方法1&#xff1a; ifconfig ethX 192.168.0.100 network 192.168.0.1 #100为ip&#xff0c;1为网关 #本方法关机失效配置方法2 vi /etc/sysconfig/network-scripts/ifcfg-ethx #基本配置参数 NAMEeth0# DEVICEeth0#设备名称…

sql2008转到sqk2000的步骤

2008转到2000的步骤 1. 生成for 2000版本的数据库脚本 2008 的manger studio -- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例 -- 右键要转到2000的库 -- 任务 -- 生成脚本 -- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到200…

浏览器生成信息

浏览器生成信息&#xff08;http&#xff09; 作者&#xff1a;WYF 生成HTTP请求消息 首先输入网址&#xff0c;网址又叫URL&#xff0c;URL还可以有其他一些文字开头&#xff0c;例如“ftp&#xff1a;”&#xff0c;“file&#xff1a;”&#xff0c;“mailto&#xff1a;”…

Visual C++ 时尚编程百例016(字体)

字体在OnDraw();中修改int cHeight;UINT position0;for(UINT x0;x<8;x){CFont font;cHeight16x*8;font.CreateFontW(-cHeight,//字体字符的逻辑高度0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|…

vfp : 顶层表单附加菜单

在表单的 Init 事件中&#xff0c;运行菜单程序并传递两个参数&#xff1a; DO menuname.mpr WITH oForm, lAutoRename oForm 是对表单的对象引用。在表单的 Init 事件中&#xff0c;THIS 作为第一个 参数进行传递。 IAutoRename 指定了是否为菜单取一个新的唯…

Linux Shell变量类型

Linux Shell 变量的类型 自定义变量类型 定义变量&#xff1a; 变量名变量值 变量名必须以字母或者下划线开头&#xff0c;区分大小写 引用变量&#xff1a; $变量名 或者$(变量名) 查看变量&#xff1a; echo $ 变量名 set&#xff08;包括自定义变量和环境变量&#xff09; …

PL/SQL配置文件解析

2019独角兽企业重金招聘Python工程师标准>>> 1.安装oracle客户端 2.配置文件 加增一个数据库的方式,是编辑 tnsnames.ora文件,在C:\Oracle\Ora81\NETWORK\ADMIN 目录下. 增加类似下面的信息 SVR236 (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL …

Linux之shell中的大括号、中括号、小括号的使用详解+多示例

摘要&#xff1a;很多人和我一样对于shell的各种括号的各种用法肯定不是很清楚&#xff0c;有时候看见别人脚本都不知道是什么意思&#xff0c;今天就来说说bash中的大中小括号的用法和解释&#xff0c;本人常用bash所以也只能用bash来说明了&#xff0c;若其他shell有出入请勿…

JSON实现桌面可移动的小便签

大多数的管理系统都会有个主程序的桌面&#xff0c;而且上面放置了一个常用的快捷方式或便捷的信息&#xff0c;比如邮件&#xff0c;通知&#xff0c;即丰富了系统内容又能够使用户在第一时间内浏览的信息。 跟XML相比&#xff0c;JSON的优势在于格式简洁短小&#xff0c;生成…

linux常用特殊符号

在shell中常用的特殊符号罗列如下&#xff1a; $ ${} $? $$ $* $# $ command{} [] [[]] () (()) ; 分号 (Command separator) 在 shell 中&#xff0c;&#xff1b;主要用来在一行中运行一条或者多条指令。 ;; 连续分号 (Terminator) 专用在 case 的选项&#xff0c;担任 T…

win7普通家庭版硬盘分区

我以前对电脑很多东西的概念也没有&#xff0c;但是自己选择了网络工程这个专业&#xff0c;那就得对它负责。自己买了个手提电脑&#xff0c;但是硬盘没有分好区&#xff0c;所以我自己开始查阅资料&#xff0c;完成了分区这个过程。 步骤一&#xff1a; 右击我的电脑选择管理…