ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考

简介:

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

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

 下面我们以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,如需转载请自行联系原作者
相关文章
|
29天前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
23 0
|
29天前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
90 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
29天前
|
SQL 关系型数据库 数据库
事务隔离级别:保障数据库并发事务的一致性与性能
事务隔离级别:保障数据库并发事务的一致性与性能
|
29天前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
47 4
|
29天前
|
存储 NoSQL API
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
190 0
|
29天前
|
存储 安全 算法
【软件设计师备考 专题 】数据库的控制功能(并发控制、恢复、安全性、完整性)
【软件设计师备考 专题 】数据库的控制功能(并发控制、恢复、安全性、完整性)
64 0
|
7天前
|
SQL 安全 关系型数据库
MySQL数据库——事务-简介、事务操作、四大特性、并发事务问题、事务隔离级别
MySQL数据库——事务-简介、事务操作、四大特性、并发事务问题、事务隔离级别
14 1
|
25天前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库PolarDB自定义权限策略参考
本文介绍了自定义权限策略,它是RAM访问控制体系中除系统策略外,用户可创建、更新和删除的权限策略。用户需维护策略版本更新,并将策略绑定到RAM身份以授予权限。策略支持版本控制和删除,但删除前需确保无引用。文章提供了相关操作文档链接,包括创建、修改、删除策略及管理引用记录和版本。此外,列举了PolarDB在MySQL、PostgreSQL和XScale版的自定义权限策略场景和示例,并提示用户在使用时需了解授权信息。
29 0
|
25天前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库 PolarDB系统权限策略参考
阿里云RAM提供系统策略和自定义策略,其中系统策略由阿里云维护,不可修改,用于快速入门。产品系统策略如AliyunPolardbFullAccess、AliyunPolardbReadOnlyAccess和AliyunPolardbReadOnlyWithSQLLogArchiveAccess分别提供全权、只读和只读加SQL日志归档访问权限。服务关联角色策略如AliyunServiceRolePolicyForPolarDB用于PolarDB访问其他资源。建议遵循最小授权原则。详情参考官方文档。
29 1
|
25天前
|
SQL Cloud Native 关系型数据库
云原生分布式数据库 PolarDB-X系统权限策略参考
阿里云RAM提供系统和自定义策略,系统策略由阿里云维护,不可修改,用于快速入门;自定义策略用户可创建、更新和删除。系统策略包括产品系统策略、服务角色策略和服务关联角色策略。产品如DRDS有预设的系统策略,如AliyunDRDSFullAccess、AliyunDRDSReadOnlyAccess等,用于不同级别的访问权限。建议遵循最小授权原则,详细授权操作见官方文档。
26 0