如何把生成的随机数向数据查询是否重复,如重复就重新生成
string chkCode = string.Empty;
char[] character ={ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
Random rnd = new Random();
//生成随机数
for (int i = 0; i < 6; i++)
{
chkCode += character[rnd.Next(character.Length)];
}
CinId = "00" + chkCode;
生成后如何自动发送给数据库里查询是否重复,如果重复又要如何重新生成???
急用..谢谢!!!
------解决方案--------------------for (int i = 0; i < 6; i++)
{
chkCode += character[rnd.Next(character.Length)];
先吧数据库的数字读出来 存放到一个数组里 然后随机数和数组比较
如果有重复i--;
}
------解决方案--------------------生成后如何自动发送给数据库里查询是否重复,如果重复又要如何重新生成???
==
最好能把数据库里相应字段的值取出来,否则你这个查询生成的过程访问数据库次数太多了,不实际
------解决方案--------------------mark
------解决方案--------------------把生成的随机数存放到一个数组里先~ 再去提取不要重复的 再放入数据 如果生成一个存一个的话 操作数据次数太多 影响程序性能和速度
------解决方案--------------------Random rnd = new Random();
如果循环很快的话,不要用这种默认种子new方式,否则会可能陷入多次循环才得到有效的
如果应用程序需要不同的随机数序列,则使用不同的种子值重复调用此构造函数。一种产生唯一种子值的方法是使它与时间相关。例如,从系统时钟派生出种子值。然而,系统时钟可能没有足够的分辨率,从而无法使用不同的种子值分别调用此构造函数。这种情况下,请应用一个算法来区分每个调用的种子值。
数据库限制只能用0-9不重复数字?何不用GUID?