private int _id ;
private DateTime _inputTime;public String ProductID
{
   get { return "PC"+_inpuTime.ToString(“yymmdd”)+_id.ToString().PadLeft(4,'0');}
}希望这能帮到你

解决方案 »

  1.   

    不知道合适不string a=PC;
    string date=System.DateTime.Now.Year;//取当前时间
    string Num="";//可以存在数据库里面一个数字 每次去出来+1在放进去
    string flowNum=a+data+Num;最后的结果
      

  2.   

    free_wang(MD) ( ) 信誉:96    Blog   加为好友  2007-07-09 10:25:53  得分: 0  
     
     
       日后请多多指教
      
     
    ===============================================================================你太有才了
      

  3.   

    回复人:hml_003() ( ) 信誉:100 2007-07-09 09:40:28 得分:0
    ? 我来这里不过3次,日后请多多指教~~~~~:(
    =========================
    特晕
      

  4.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace WindowsApplication8
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                string year = System.DateTime.Now.Year.ToString().Substring(2);
                string month = System.DateTime.Now.Month.ToString();
                string day = System.DateTime.Now.Day.ToString();
                if (month.Length < 2)
                {
                    month = "0" + month;
                }
                if (day.Length < 2)
                {
                    day = "0" + day;
                }
                Random rnd = new Random();
                this.textBox1.Text = "PC" + year + month + day + rnd.Next(1000, 10000).ToString(); ;
            }
        }
    }
    偶用的是随即数,要放数据库的话还需要你自己去比对
      

  5.   

    楼上的根本就不是流水号的写法
    何况日期,还用这么麻烦吗,ToString("yyyy-MM-dd"); 数字如001  int i=1; i.ToString("000");就可以了
    关键是取后面流水号,建临时表,是最快的办法,当然你可以写SQL函数等等
      

  6.   

    楼上们不要搞的那么复杂吧。。string 物品编号=String.Format("{0}{1:yyMMdd}{2:D4}","PC",DateTime.Now,1);这叫做格式化字符串,自己复制到程序里试一下就明白了
      

  7.   

    什么地方都不缺色狼的。呵呵。
     manasheep(斯克迪亚) 的解答比较合适。 
      

  8.   

    hml_003() ( ) 信誉:100    Blog   加为好友  2007-7-9 9:40:28  得分: 0  
     
     
       
    我来这里不过3次,日后请多多指教~~~~~:(  
     
    ------------------------------------------
    汗~~~~
    这句都回出来了!
      

  9.   

    一般来说,女孩子是不会刻意告诉csdn的狼友们说她是女孩子
      

  10.   

    比较适合的方法就是利用SQL的存储过程来实现:--新建一个表,保存最后一次使用的流水号,表中永远都只有一行一列记录,当生成新的流水号时记录就被更新,流水号的格式是PC+4位标准日期加4位流水号
    create table AutoOrdID
    (
    OrdID char(12) not null
    )
    go--随便添加一条日期早于今天的记录
    insert AutoOrdID values('200508280001')
    go----创建自动生成定单流水号的存储过程
    create proc GetOrdID
    @OrdID varchar(12) output       --新生成的定单号
    as
    declare @year int,              --记录当前日期年部分
            @month int,             --记录当前日期月部分
            @FinOrdID varchar(12),  --记录最后一次使用的定单号
            @ID varchar(4)          --记录流水号
    begin
      select @year=year(getdate())
      select @month=month(getdate())
      select @day=day(getdate())
      select @OrdID='PC'+Str(@Year,2,0)+
                    (select
                     case
                      when @Month>=10 then Str(@Month,2,0)
                      when @Month<10 Then '0'+Str(@Month,1,0)
                     end)
      select @FinOrdID=OrdID from AutoOrdID
      if @OrdID<>substring(@FinOrdID,1,8)
         select @OrdID=@OrdID+'0001'--新的一天,日期从0001开始
      else
         begin
           select @ID=str(convert(int,substring(@FinOrdID,7,4)+1),4,0)
           select @ID=replace(@ID,' ','0') --同一天内,日期增1
           select @OrdID=@OrdID+@ID
         end
      update AutoOrdID set OrdID=@OrdID
    end
    go希望你好好研究研究。
      

  11.   

    刚太仓促了,修改如下:
    比较适合的方法就是利用SQL的存储过程来实现:--新建一个表,保存最后一次使用的流水号,表中永远都只有一行一列记录,当生成新的流水号时记录就被更新,流水号的格式是PC+4位标准日期加4位流水号
    create table AutoOrdID
    (
    OrdID char(10) not null
    )
    go--随便添加一条日期早于今天的记录
    insert AutoOrdID values('PC05080001')
    go----创建自动生成定单流水号的存储过程
    create proc GetOrdID
    @OrdID varchar(12) output --新生成的定单号
    as
    declare @year int, --记录当前日期年部分
    @month int, --记录当前日期月部分
    @FinOrdID varchar(12), --记录最后一次使用的定单号
    @ID varchar(4) --记录流水号
    begin
    select @year=year(getdate())
    select @month=month(getdate())
    select @day=day(getdate())
    select @OrdID='PC'+Str(@Year,2,0)+
    (select
    case
    when @Month>=10 then Str(@Month,2,0)
    when @Month<10 Then '0'+Str(@Month,1,0)
    end)
    select @FinOrdID=OrdID from AutoOrdID
    if @OrdID<>substring(@FinOrdID,1,8)
    select @OrdID=@OrdID+'0001'--新的一天,流水号从0001开始
    else
    begin
    select @ID=str(convert(int,substring(@FinOrdID,7,4)+1),4,0)
    select @ID=replace(@ID,' ','0') --同一天内,流水号增1
    select @OrdID=@OrdID+@ID
    end
    update AutoOrdID set OrdID=@OrdID
    end
    go
    我测试过,绝对可以。
    希望你好好研究研究。
      

  12.   

    ASP.net使用方法:
    调用相关对象调用执行GetOrdID存储过程,然后调用相关对象查询AutoOrdID表中的记录,并赋值给一个变量,这样你就得到一个流水号了。
      

  13.   

    ls理解有误,AutoOrdID 始终存放的是最新的流水号记录,也就是最后四位是最大值,
    每插入新流水号时,先判断日期,看是否是新的一天,如果是则最后四位从0001开始
    如果不是则最后四位加1
      

  14.   

    女孩子是不会刻意告诉csdn的狼友们说她是女孩子经典
      

  15.   

    csdn都快变狼窝了
    我屏幕在反射绿光