程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#利用時間和隨即字符串創建唯一的訂單編號

C#利用時間和隨即字符串創建唯一的訂單編號

編輯:關於C語言

使用RNGCryptoServiceProvider類創建唯一的最多8位數字符串,再在前面拼接上年月日時分秒產生的字符串,最大限度的保證生成的字符串是唯一的。

大家也可以根據自己的需求修改,日期可以取值到毫秒,這樣更能保證生成的字符串是唯一的。

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 private static string GetUniqueKey() { int maxSize = 8; int minSize = 5; char[] chars = new char[62]; string a; a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; chars = a.ToCharArray(); int size = maxSize; byte[] data = new byte[1]; RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider(); crypto.GetNonZeroBytes(data); size = maxSize; data = new byte[size]; crypto.GetNonZeroBytes(data); StringBuilder result = new StringBuilder(size); foreach (byte b in data) { result.Append(chars[b % (chars.Length - 1)]); } return result.ToString(); }

然後調用方法,如下做了演示,每次產生的結果都不一樣

? 1 2 3 4 5 6 for (int i = 0; i < 10; i++) { string str = string.Format("{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), GetUniqueKey()); Console.WriteLine(str); } Console.ReadKey();
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved