流水号的格式为:年+月+流水号(如:201109001,201109002,201109003,......)
每个月的月初流水号将重头开始
一一年的十月为:201110001,201110002,......
一一年的十一月为:201111001,201111002,......
一一年的十二月为:201112001,201112002,201112003,......急,感谢了!

解决方案 »

  1.   

    string 流水号 = string.Format("{0}{1}",DateTime.Now.ToString("yyyyMMdd"),序号);
      

  2.   


                int id = 1;
                id = Convert.ToInt32(DateTime.Now.ToString("yyyyMM00")) + id;
                Console.Write(id);
                Console.Read();
      

  3.   


    增加一个数据表,放最少三个字段:年份、月份、流水号最大值。然后编写一个存储过程来生成流水号。读数据库的年份和月份来查流水号就OK了,没有该年月的流水则创建一条记录,否则修改并将流水号加1.设置长度,位数不足用0填充。Good Luck。
      

  4.   

     //给你一个函数
    public static string AutoReturnID(string TableName, string FiledName)
            {
                String sqlr = "select Max(" + FiledName + ")  from " + TableName + "";
                string ReturnID;
                using (OleDbConnection connection = new OleDbConnection(connectionString))
                {                OleDbCommand Command = new OleDbCommand(sqlr, connection);
                    connection.Open();
                    if (Command.ExecuteScalar() == null)
                    {
                        ReturnID = DateTime.Now.Year.ToString("000") + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00") + "001";
                    }
                    else
                    {
                       if (DateTime.Now.Day==1)
    {  
    ReturnID = DateTime.Now.Year.ToString("000") + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00") + "001";
    else
    {
                        string count = Convert.ToString(Command.ExecuteScalar());
                        count = count.Substring(count.Length - 3, 3);
                        ReturnID = DateTime.Now.Year.ToString("000") + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00") + (Convert.ToInt32(count) + 1).ToString("000");
    }
                    }
                    Command.Dispose();
                    connection.Close();
                    return ReturnID;
                }
            }
      

  5.   

    public static string AutoReturnID(string TableName, string FiledName)
            {
                String sqlr = "select Max(" + FiledName + ")  from " + TableName + "";
                string ReturnID;
                using (OleDbConnection connection = new OleDbConnection(connectionString))
                {                OleDbCommand Command = new OleDbCommand(sqlr, connection);
                    connection.Open();
                    if (Command.ExecuteScalar() == null)
                    {
                        ReturnID = DateTime.Now.Year.ToString("0000") + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00") + "001";
                    }
                    else
                    {
                       if (DateTime.Now.Day==1)
    {  
    ReturnID = DateTime.Now.Year.ToString("0000") + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00") + "001";
    }
    else
    {
                        string count = Convert.ToString(Command.ExecuteScalar());
                        count = count.Substring(count.Length - 3, 3);
                        ReturnID = DateTime.Now.Year.ToString("0000") + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00") + (Convert.ToInt32(count) + 1).ToString("000");
    }
                    }
                    Command.Dispose();
                    connection.Close();
                    return ReturnID;
                }
            }
      

  6.   


    --在数据库做应该会好一些
    --数据表 
    DECLARE @Table TABLE(Number VARCHAR(20))
    --测试数据
    INSERT INTO @Table(Number)
    SELECT '201110001' UNION ALL
    SELECT '201110002' UNION ALL
    SELECT '201110003' 
    DECLARE @Number VARCHAR(20),@DateStr VARCHAR(6),@TotalCount INTSET @TotalCount = 1000
    SELECT @DateStr = REPLACE(CONVERT(VARCHAR(7),GETDATE(),120),'-','')
    SELECT @TotalCount = @TotalCount +ISNULL(COUNT(1),0) FROM @Table T WHERE LEFT(T.Number,6)=@DateStrSET @Number = @DateStr+RIGHT(LTRIM(@TotalCount+1),3)SELECT @Number/*
    (3 行受影响)--------------------
    201110004(1 行受影响)*/
      

  7.   

    http://topic.csdn.net/u/20110831/17/5f4bf99b-4245-4b99-9b46-3c3b387ea20a.html