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

简介:

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






本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1200771,如需转载请自行联系原作者
相关文章
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
752 3
|
12月前
|
数据库 C# 开发者
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
|
12月前
|
SQL Oracle 关系型数据库
南大通用GBase 8s 数据库封锁与并发事务调度介绍
南大通用GBase 8s 数据库封锁与并发事务调度介绍
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
134 3
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
316 2
|
SQL 开发框架 .NET
ASP连接SQL数据库:从基础到实践
随着互联网技术的快速发展,数据库与应用程序之间的连接成为了软件开发中的一项关键技术。ASP(ActiveServerPages)是一种在服务器端执行的脚本环境,它能够生成动态的网页内容。而SQL数据库则是一种关系型数据库管理系统,广泛应用于各类网站和应用程序的数据存储和管理。本文将详细介绍如何使用A
276 3
|
12月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
12月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
704 6
|
存储 监控 关系型数据库
MySQL并发控制与管理:优化数据库性能的关键
【10月更文挑战第17天】MySQL并发控制与管理:优化数据库性能的关键
973 0

热门文章

最新文章