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

自动生成流水编号!!!挺难的!!!
大家帮我个忙呗!!!自动生成流水编号!这个问题我很头疼!不好实现!!求代码》》》
问题是:
当选择类别A中的1, 类别B中的01时,自动生成的编号为101001  当下次再同样选择类别A 和B时,自动生成101002, 101003,101004...    
当选择类别A中的1,类别B中的02时,自动生成的编号为102001  当下次再同样选择类别A 和B时,自动生成102002, 102003,102004... 
当选择类别A中的2,类别B中的01时,自动生成的编号为201001  当下次再同样选择类别A 和B时,自动生成201002, 201003,201004... 
当选择类别A中的2,类别B中的02时,自动生成的编号为202001  当下次再同样选择类别A 和B时,自动生成202002, 202003,202004... 
c# ?流水编号

------解决方案--------------------
101001,1和01为程序中拼接字符串的形式获得,后面的001是个字符串,查询数据库表的max(id)获得(每次生成的流水号要保存到数据库),然后string.concat合并起来。
------解决方案--------------------
這個不是很簡單嗎?自己寫個取得編號的方法
1.你可以直接根據條件去取他的最大MAX(NO)
2.你也可以在每次保存的時候把NO保存在一個表中,下次直接加一就是了
類別字段,序號,
Bill_Type,Number
A1B01     101001
A1B02     102001
.....
下次你只要在此直基礎上加1,再更新此表

------解决方案--------------------
不难,用string.Format自己拼接就可以。
------解决方案--------------------
这不就是直接拼一下么。。。 int.parse("1"+"02"+"00") 不就是10200
------解决方案--------------------
懒人,技术一路没有捷径,伸手党必将灭亡
------解决方案--------------------
假设 数据库 存在表 TB_SerialNum
结构:
主键  类型       流水号
 2     typeA     101002
 3     typeB     102002

c# : 
string 流水号=DBHelperSQL.ExecuteScalar("select Max(流水号) FROM TB_SerialNum WHERE 类型='typeA'").ToString();
if(string.isnullOrempty(流水号))
{
流水号="101001";
}
string 新流水号=(int.Parse(流水号)+1).ToString();
    DBHelperSQL.ExecuteSql("INSERT INTO TB_SerialNum VALUES('typeA','"+新流水号+"' )");//插入 新流水号到  TB_SerialNum 
------解决方案--------------------
下班回家喽  慢慢研究吧

create table 流水表(编号 nvarchar(10))