日期:2014-05-17  浏览次数:20536 次

c#生成订单号
c#生成订单号按照时间和每天从00001开始

例如; 20120117091100001 前面是当日年月日时分 后面是00001,00002,00003....递增的

不用sql生成 用c#怎么弄?

------解决方案--------------------
class IDGenerator
{
........
public string CreateID();
}
------解决方案--------------------
这个么。。。很可能会有重复值啊

还是sql里弄吧。。
------解决方案--------------------
探讨

引用:
class IDGenerator
{
........
public string CreateID();
}




??????????????

------解决方案--------------------
你都要读数据库最大的ID出来才能拼出这个地址的。还不如直接在存储过程做。
------解决方案--------------------
C# code
            int max = 100;
            System.Linq.Enumerable.Range(1, max).ToList().ForEach(i =>
            {
                string value = "0000000" + i.ToString();
                Console.WriteLine("{0}{1}", DateTime.Now.ToString("yyyyMMddhhmm"), value.Substring(value.Length - 5));
            });

------解决方案--------------------
C# code
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(CreateOrderNumber("20120117091100001"));
        }

        /// <summary>
        /// 生成新订单号
        /// </summary>
        /// <param name="thisOrderNumber">当前订单号</param>
        /// <returns>返回新订单号</returns>
        public static string CreateOrderNumber(string thisOrderNumber)
        {
            string num = thisOrderNumber.Substring(12, 5);
            int newNum = int.Parse(num) + 1;
            return DateTime.Now.ToString("yyyyMMddHHmm")+newNum.ToString().PadLeft(5,'0');
        }
    }

------解决方案--------------------
肯定要涉及数据库操作的吧,否则很容易出现重复的