随机数这样!Random rd=new Random();
            for(int i=0;i<100;i++)
                   {
                   int []s=new int [100];
                      s[i]=rd.Next(200);//0-200之间的一个随机数
                     }

解决方案 »

  1.   

    如下:
    long lngOldNum=0;
    long lngNewNum=0;
    for(int i=0;i<500;i++)
    {
        do
        {
            lngNewNum=(int)DateIime.Now.Ticks;
        }while(lngNewNum==lngOldNum);
        //lngNewNum为新的号,在此转换成10位或8位的串
        lngOldNum=lngNewNum;
    }
      

  2.   

    用ArrayList 
    ArrayList list = new ArrayList();
    int num = 你产生的数。
    list.Add(num)
    while(list.Contains(num)
    {
      num = 继续生成数;
    }
      

  3.   

    我想随机密码不会也用数字吧,你可以用字母数字结合.
    char[] a=new Char[8];
    Random rnd = new Random();
    char[] a=new Char[8];
    for (int i = 0; i < 8; i++) 
    {
    a[i]=Convert.ToChar(rnd.Next(10,100));
    //这里10,100你可以指定为ASCII码表中的对应范围,如只取字母,数字,或数字字母同取.
    具体范围你去查一下ASCII码表吧.然后用Convert.ToChar轮换为数字对应的ASCII码
    }
    写入数据库时再检查一下有无重复记录,虽然可能性很少,但也需要试试
      

  4.   

    多谢各位,搞定了, 顺便帖上来分享一下
    private void getpass(object sender, System.EventArgs e)
    {
    //this.Message.Text=buildRndCodeAll(8);
    SqlConnection conn=new SqlConnection();
    MyDb dbconn=new MyDb();
    dbconn.ConnectSQL(conn);
    SqlCommand myCommand=new SqlCommand();
    myCommand.CommandTimeout = 20;
    myCommand.Connection=conn; string lngOldNum="";
    string lngNewNum="";
    string AllNum=",";
    string RngPass="";
    myCommand.CommandText = @"insert into [cards]([card],[pass]) values(@card,@pass)";
    myCommand.Parameters.Add(new SqlParameter("@card",SqlDbType.Char,100));
    myCommand.Parameters.Add(new SqlParameter("@pass",SqlDbType.Char,100));
    for(int i=0;i<500;i++)
    {
    do
    {
    lngNewNum="01"+buildRndCodeAll(8);
    RngPass=buildRndCodeAll(8);
    }while(lngNewNum==lngOldNum&&AllNum.IndexOf(",lngNewNum,")==-1);
            this.Message.Text+="<br>卡号"+lngNewNum+"密码"+RngPass;
    lngOldNum=lngNewNum;
    AllNum+=lngNewNum+",";


    myCommand.Parameters["@card"].Value = lngNewNum;
    myCommand.Parameters["@pass"].Value = RngPass;

    myCommand.ExecuteNonQuery();
    } }
    private static int getNewSeed()
    {
    byte[] rndBytes = new byte[4];
    RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
    rng.GetBytes(rndBytes);
    return BitConverter.ToInt32(rndBytes,0);
    }
    private static string buildRndCodeAll1(int strLen) 
    {
    System.Random RandomObj = new System.Random(getNewSeed()); 
    string buildRndCodeReturn = null;
    for(int i=0; i<strLen; i++) 
    {
    buildRndCodeReturn += (char)RandomObj.Next(33,125);
    }
    return buildRndCodeReturn;
    }
    private static string buildRndCodeAll(int strLen) 
    {
    System.Random RandomObj = new System.Random(getNewSeed()); 
    string buildRndCodeReturn = null;
    for(int i=0; i<strLen; i++) 
    {
    buildRndCodeReturn += RandomObj.Next(1,9);
    }
    return buildRndCodeReturn;
    }