1.生成如下4位流水号 ,0001,0002,0003,....后面未知多少个
2.现在有ID,NO,两个字段,ID自增1,2,3....,要求NO(0001,0002....)和ID的数保持一致,不足四位前面补0,怎么实现啊?
在下恭候各位的回答了...菜鸟等待ING.....

解决方案 »

  1.   

    生成这样的流水号不难,难的是并发
    string strNum="3"
    if(strNum.Length==1)
    {
     strNum="000"+strNum;
    }
    if(strNum.Length==2)
    {
     strNum="00"+strNum;
    }
    if(strNum.Length==3)
    {
     strNum="0"+strNum;
    }
    if(strNum.Length==4)
    {
     strNum=strNum;
    }
      

  2.   

    string strNum="3"
    if(strNum.Length==1)
    {
    strNum="000"+ID;
    }
    if(strNum.Length==2)
    {
    strNum="00"+ID;
    }
    if(strNum.Length==3)
    {
    strNum="0"+ID;
    }
    if(strNum.Length==4)
    {
    strNum=convert.toint32(strNum)+id;
    }
    这样是否可以 
      

  3.   

    难倒是不难,有并发就麻烦了。select right('0000'+cast(1 as varchar(4)),4)
    select right('0000'+cast(9999 as varchar(4)),4)
    /*
             
    -------- 
    0001(所影响的行数为 1 行)         
    -------- 
    9999(所影响的行数为 1 行)
    */
      

  4.   

    大家说的都有道理,可是我想的是怎么样先取出数据库里面最大的ID,然后在次基础上生成(保持4位数)流水号,再递增1;如当前id是13,那么我先取出这个13,然后id=13 ,再+1 ,ID为14,然后不足四位补“0”变成0014;依照此理,再生成0015....0099...0100等等。每个数之间都是递增的
      

  5.   


    select  top  1 id from  table  order  by  id  asc查出最大id后,。
      

  6.   

    strNum=convert.toint32(strNum)+id; 
    你这句话错了 刚刚没看清出.. 你是string的strNum怎么转换成convert.toInt32()后又加了ID的字符串  这就话肯定是错的了...呵呵
      

  7.   

    1. select max(id) as id from 表名
    2. string strId= id.toString(); //转换id为string类型
    3. strId=strId.PadLeft(4,'0'); //不足4位前面补‘0’
      

  8.   

    忘了+ 1  2.  改为  string strId= (id+1).toString;//id+1后转为 string 类型
      

  9.   

    或者 直接用在sql语句中计算获取:
    select right(10000+max(id)+1,4) as NO from 表名
    获得的 NO 既是 前面补足4位 的 NO号。
    如 当前最大id号是13【max(id)】 10000+13+1=10014 right取右边的4位既 0014
    注意:10000 这个数的‘0’的个数 一定要 >= 4
      

  10.   

    如果你要在插入数据时就生成该流水号,可以下面语法:
    INSERT INTO 表名(no) values(right('0000'+cast(@@identity as nvarchar))
      

  11.   

    应该是
    INSERT INTO 表名(no) values(right('0000'+cast(@@identity as nvarchar),4))