ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考(C#.NET通用权限管理系统组件源码组成部分)...
??我們?cè)谌粘i_發(fā)項(xiàng)目過程中往往需要各種訂單單號(hào)的產(chǎn)生方法,而且是支持多用戶并發(fā)、支持多種數(shù)據(jù)庫的,我們并不想為每個(gè)項(xiàng)目都寫一些獨(dú)立的代碼去實(shí)現(xiàn)這些功能,往往需要有個(gè)通用的函數(shù)比較爽一些。
??下面我們以C#.NET通用權(quán)限管理系統(tǒng)組件源碼的做法,給大家來一個(gè)參考,下面是序列(流水號(hào))管理器的效果,這里保存著各種需要的當(dāng)前狀態(tài)。
?
??這里是代碼的具體位置參考?
這里是程序運(yùn)行效果參考,可以通過函數(shù)獲取當(dāng)前的序號(hào)、編號(hào)等等,可以靈活設(shè)置要幾位長度的編號(hào),是否補(bǔ)前導(dǎo)零,從幾開始編號(hào)等等。?
這個(gè)是服務(wù)層的并發(fā)處理方法參考?
?
?這里是具體的頁面上的代碼參考,程序里只需要一行代碼,就可以獲取自動(dòng)流水號(hào)、序號(hào)、編號(hào)等全智能的實(shí)現(xiàn),用起來會(huì)很爽,而且可以生成各種類別的訂單號(hào),甚至可以講是任意的都可以,不要折騰太多飛機(jī)了,而且還支持多種數(shù)據(jù)庫,不用針對(duì)每種數(shù)據(jù)庫又編寫代碼了,哪個(gè)項(xiàng)目都可以靈活用,全部的源碼也可以提供。
?
//--------------------------------------------------------------------//?All?Rights?Reserved?,?Copyright?(C)?2011?,?Hairihan?TECH,?Ltd.?
//--------------------------------------------------------------------
using?System;
namespace?DotNet.WebForm
{
????using?DotNet.Service;
????///?<remarks>
????///?OrderNumber
????///?序號(hào)產(chǎn)生方式、并發(fā)序號(hào)發(fā)生、唯一編號(hào)產(chǎn)生
????///?
????///?修改紀(jì)錄
????///?
????///????????版本:1.0?2011.02.28????JiRiGaLa????初步創(chuàng)建。
????///????
????///?版本: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.按年產(chǎn)生訂單序號(hào)。
????????????orderName?=?"Order:"?+?DateTime.Now.ToString("yyyy");
????????????//?獲取原編號(hào)
????????????//?ServiceManager.Instance.SequenceService.GetOldSequence(this.UserInfo,?fullName,?0,?5,?true);
????????????//?這里是編號(hào)增加一的動(dòng)作
????????????this.txtOrderNumber1.Text?=?ServiceManager.Instance.SequenceService.GetNewSequence(this.UserInfo,?orderName,?0,?5,?true);
????????????//?2.按年月產(chǎn)生訂單序號(hào)。
????????????orderName?=?"Order:"?+?DateTime.Now.ToString("yyyyMM");
????????????//?ServiceManager.Instance.SequenceService.GetOldSequence(this.UserInfo,?fullName,?0,?5,?true);
????????????//?這里是編號(hào)增加一的動(dòng)作
????????????this.txtOrderNumber2.Text?=?ServiceManager.Instance.SequenceService.GetNewSequence(this.UserInfo,?orderName,?0,?5,?true);
????????????//?3.按年月日產(chǎn)生訂單序號(hào)。
????????????orderName?=?"Order:"?+?DateTime.Now.ToString("yyyyMMdd");
????????????//?ServiceManager.Instance.SequenceService.GetOldSequence(this.UserInfo,?fullName,?0,?5,?true);
????????????//?這里是編號(hào)增加一的動(dòng)作
????????????this.txtOrderNumber3.Text?=?ServiceManager.Instance.SequenceService.GetNewSequence(this.UserInfo,?orderName,?0,?5,?true);
????????????//?4.按類別產(chǎn)生訂單序號(hào)。
????????????orderName?=?"Order:"?+?"StockOut";
????????????//?ServiceManager.Instance.SequenceService.GetOldSequence(this.UserInfo,?fullName,?0,?5,?true);
????????????//?這里是編號(hào)增加一的動(dòng)作
????????????this.txtOrderNumber4.Text?=?ServiceManager.Instance.SequenceService.GetNewSequence(this.UserInfo,?orderName,?0,?5,?true);
????????}
????????protected?void?btnGetOrderNumber_Click(object?sender,?EventArgs?e)
????????{
????????????this.GetOrderNumber();
????????}??
????}
}?
?
總結(jié)
以上是生活随笔為你收集整理的ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考(C#.NET通用权限管理系统组件源码组成部分)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net 实现一级域名与二级域名共
- 下一篇: c#中使用多线程访问winform中控件