先用RNGCryptoServiceProvider生成一个字节数组,然后把字节数组转成字符串,由于我没有IDE,RNG那块忘记了,就写个字节数组转字符串的给你
public string BytesToHex(byte[] bytes) {
StringBuilder str = new StringBuilder(bytes.Length * 2);
foreach (byte b in bytes) {
str.AppendFormat("{0:X2}", b);
}
return str.ToString();
}
建议还是直接用全球唯一标识符(GUID)好了,GUID可被视作永不重复的,并且在不同计算机之前也不会重复,生成方法极简单:
var 编号=Guid.NewGuid().ToString();
生成的格式如:4546a166-b647-46f7-8409-9789ec8f8324
如果不想要“-”符号,那就:
var 编号=Guid.NewGuid().ToString("n");
生成的格式如:4546a166b64746f784099789ec8f8324
这样即使有多家分公司或分理处共同使用这一种系统生成表单,也不会有重复值,可以很方便地交换、合并数据。
string a = String.Format("{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmss"),Guid.NewGuid().ToString().Split('-')[4]);
Console.WriteLine(a.ToUpper());
这个绝对不会重复:时间精确到秒,取Guid生成的最后一个字串。
表单有日期也利于统计。