日期:2014-05-20  浏览次数:20726 次

这样的随机数据如何得出
我要向一个表中批量插入一些数据,其中一个字段的值是用程序生成一个随机数
随机数据的规则是这样的:共6位,前两位是数据,中间两位是字母,后两位也是数字,例如:AC12UI

请问这样的随机数如何得出??

------解决方案--------------------
private void button1_Click(object sender, EventArgs e)
{
string 字母 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
string 数字 = "0123456789 ";
Random vRandom = new Random();
string 随机数据 = " ";
随机数据 += 字母[vRandom.Next(字母.Length)];
随机数据 += 字母[vRandom.Next(字母.Length)];
随机数据 += 数字[vRandom.Next(数字.Length)];
随机数据 += 数字[vRandom.Next(数字.Length)];
随机数据 += 字母[vRandom.Next(字母.Length)];
随机数据 += 字母[vRandom.Next(字母.Length)];
Text = 随机数据;

------解决方案--------------------
随机的事情,这个可不能保证,除非先生成一个字典
每次从字典里随机抽出一个值并删除
前提要早说
------解决方案--------------------
26 * 26 * 10 * 10 * 26 * 26 = 45,697,600
这个字典也够大的,建议用数据存储
------解决方案--------------------
private string Suiji()
{
string str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
string number = "0123456789 ";
Random vRandom = new Random();
string str2 = " ";
str2 += str[vRandom.Next(str.Length)];
str2 += str[vRandom.Next(str.Length)];
str2 += number[vRandom.Next(number.Length)];
str2 += number[vRandom.Next(number.Length)];
str2 += str[vRandom.Next(str.Length)];
str2 += str[vRandom.Next(str.Length)];
return str2;
}
private bool IsExist(string s)
{
//既然你的随机数是存在数据库里的,比如列为Suiji
//用一下查询看有没有返回值,没有的话说明数据库中没有,可以用
//否则的话重新生成
}
private string BackSuiji()
{
string ss;
do
{
ss = Suiji();
}
while (!IsExist(ss));
return ss;
}