利用Singleton多例设计模式创建自增编号

利用Singleton多例模式创建商品自增编号:

如下图片:

代码:


namespace FrmSingleton
{
    //生产编号
   public class CreateNewCode
    {
       static Hashtable table = new Hashtable();

      //构造方法设为私有.外部类不能实例化此类

       private  CreateNewCode()
       {
 
       }
       //规则
       private string CodeRole = string.Empty;

       public string CoDeRole
       {
           get { return CodeRole; }
       }

       //开始自增的字段
       private int number=0;

       public static CreateNewCode inctext(string px)
       {
           //实例化一个为null的对象
           CreateNewCode newCode = null;

           //如果存在则返回
           if (table.Contains(px))
           {
               newCode = (CreateNewCode)table[px];
           }
           else
           {
               lock (table)
               {
                   newCode = new CreateNewCode();
                   newCode.CodeRole = px;
                   table.Add(px, newCode);
               }
           }
           return newCode;
       }

       //获取一个新的值
       public string GetNewCode()
       {
           return (string.Format("{0}-{1:0000-0000}", CodeRole, ++number));
       }
       //获取上一个值

       public string LastCode()
       {
           return (string.Format("{0}-{1:0000-0000}", CodeRole, number));
       }

    }
}

 

//这样就实现了根据类型不同产生自增的商品编号.但有一点需要改变.因为这里是存在hashtable当中.在项目中;当应用程序关闭或服务器断电时序列号又从0开始.这个数字就和数据库发生主键重复冲突.解决方法这里就简单很多了.取出数据表最后一个插入的的编号字段

select top 1 Cid from shop order by Cid ordersDate(订单时间) desc 这样取出.再取出格式化后面的值.就可完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值