日期:2014-05-18  浏览次数:20842 次

如何把生成的随机数向数据查询是否重复,如重复就重新生成
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?