用当前时间(Now)就不会重复,你可以把时间里的:和空格替换掉

解决方案 »

  1.   

    在vb中,可以连接上一个Rnd()
    在C#中,可以连接上一个Rand(),
    注意它返回一个single类型的数值。
      

  2.   

    分+秒+微秒用DateTime.Now属性。eg:DataTime.Now.Year;
    ..........
    ..........
      

  3.   

    Rnd 函数请参见
    数学摘要 | Randomize 语句
    要求
    命名空间:Microsoft.VisualBasic模块:VBMath程序集:Microsoft Visual Basic .NET 运行库(位于 Microsoft.VisualBasic.dll 中)
    返回一个 Single 类型的随机数。
      

  4.   

    Rnd 函数返回小于 1 但大于或等于 0 的值。
    number 的值决定了 Rnd 生成随机数的方式:
    由于每一次后续调用 Rnd 函数都用序列中前一个生成的数作为下一个数的种子,因此对于任何给定的初始种子都会生成相同的数字序列。
    在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有一个基于系统计时器的种子。
    若要生成某给定范围内的随机整数,可使用此公式:
    CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))
    这里,upperbound 是此范围的上限,而 lowerbound 是范围的下限。
    注意   若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 number 值的 Randomize 不会重复前一序列。
    安全说明   由于 Random 语句和 Rnd 函数从一个种子值开始,然后生成处于有限范围内的数字,因此,如果某个人知道生成这些数字的算法,他就可以预测结果。因此,不应使用 Random 语句和 Rnd 函数生成加密使用的随机数。
    示例
    本例使用 Rnd 函数生成一个 1 到 6 之间的随机整数值。
    Dim MyValue As Integer
    MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.
      

  5.   

    Dim MyValue as Integer
    MyValue = CInt(Int((9999 * Rnd()) + 1))
    這個範例使用 Rnd 函式產生 1 到 9999 的亂數整數。
      

  6.   

    试试这个行不行???
    string aa = System.Random.Next(1000,9999).ToString();
    FormNo=DateTime.Now.Year.toString+DateTime.Now.Month.ToString+DateTime.Now.Month.ToString+aa