各位好
碰到个问题 想不到法子 所以来这里取经  嘿嘿~~
我需要做一个随便数  要是10数字的 用int 类型接收  说是长度不够
 声明成long 型的 那个随便方法 next() 参数又不支持 long型   Random ran = new Random();
string code = (ran.Next(begin, end)).ToString();begin和end 都是int型的 因为数据的字段是int型的 在不动数据库字段类型的情况下  如何解决 这个问题呢?
各位路过的朋友  有没有 碰到过类似的问题  还请指教一二~先行谢过了呵~~

解决方案 »

  1.   

    可以先生成两个5位的随机数字,然后转成字符相加,如:
    string a = new Random().Next(9999, 99999).ToString();
    string b = new Random().Next(9999, 99999).ToString();
    return a+b;
      

  2.   

    using System;    
    using System.Collections.Generic;    
    using System.Text;    
       
    namespace NetCMS.Common    
    {    
        public class Rand    
        {    
            /// <summary>    
            /// 生成随机数字    
            /// </summary>    
            /// <param name="length">生成长度</param>    
            /// <returns></returns>    
            public static string Number(int Length)    
            {    
                return Number(Length, false);    
            }    
       
            /// <summary>    
            /// 生成随机数字    
            /// </summary>    
            /// <param name="Length">生成长度</param>    
            /// <param name="Sleep">是否要在生成前将当前线程阻止以避免重复</param>    
            /// <returns></returns>    
            public static string Number(int Length,bool Sleep)    
            {    
                if(Sleep)    
                    System.Threading.Thread.Sleep(3);    
                string result = "";    
                System.Random random = new Random();    
                for (int i = 0; i < Length; i++)    
                {    
                    result += random.Next(10).ToString();    
                }    
                return result;    
            }    
       
            /// <summary>    
            /// 生成随机字母与数字    
            /// </summary>    
            /// <param name="IntStr">生成长度</param>    
            /// <returns></returns>    
            public static string Str(int Length)    
            {    
                return Str(Length, false);    
            }    
            /// <summary>    
            /// 生成随机字母与数字    
            /// </summary>    
            /// <param name="Length">生成长度</param>    
            /// <param name="Sleep">是否要在生成前将当前线程阻止以避免重复</param>    
            /// <returns></returns>    
            public static string Str(int Length, bool Sleep)    
            {    
                if(Sleep)    
                    System.Threading.Thread.Sleep(3);    
                char[] Pattern = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 
    'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
     'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };    
                string result = "";    
                int n = Pattern.Length;    
                System.Random random = new Random(~unchecked((int)DateTime.Now.Ticks));    
                for (int i = 0; i < Length; i++)    
                {    
                    int rnd = random.Next(0,n);    
                    result += Pattern[rnd];    
                }    
                return result;    
            }    
       
       
            /// <summary>    
            /// 生成随机纯字母随机数    
            /// </summary>    
            /// <param name="IntStr">生成长度</param>    
            /// <returns></returns>    
            public static string Str_char(int Length)    
            {    
                return Str_char(Length, false);    
            }    
       
            /// <summary>    
            /// 生成随机纯字母随机数    
            /// </summary>    
            /// <param name="Length">生成长度</param>    
            /// <param name="Sleep">是否要在生成前将当前线程阻止以避免重复</param>    
            /// <returns></returns>    
            public static string Str_char(int Length, bool Sleep)    
            {    
                if (Sleep)    
                    System.Threading.Thread.Sleep(3);    
                char[] Pattern = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
     'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };    
                string result = "";    
                int n = Pattern.Length;    
                System.Random random = new Random(~unchecked((int)DateTime.Now.Ticks));    
                for (int i = 0; i < Length; i++)    
                {    
                    int rnd = random.Next(0, n);    
                    result += Pattern[rnd];    
                }    
                return result;    
            }    
        }    
    }  
      

  3.   

    10位数字是什么意思?最高位不得为0?把规则讲清楚...Int32最大2147483647,除非你最高位限定为小于2,否则必须改类型...楼上这些代码都会出异常...