数字型字符串如何自增

lid123456 2010-10-23 05:04:32
字符串不固定,如:“0003458”或“00000023786”,也就是前面可能包含零,位数也不确定。这是一个发票号码,每次打印完一张后,要自动增加1,上述就变成了“0003459”或“00000023787”
不能老让用户去输入啊。
大家有没有好的算法来实现这个功能。谢谢
...全文
481 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lid123456 2010-10-23
  • 打赏
  • 举报
回复
解决了。谢谢各位

int counts = this.textBox5.Text.Trim().Length;
int fph = int.Parse(this.textBox5.Text.Trim()) + 1;
this.textBox5.Text = fph.ToString().PadLeft(counts, '0');
兔子-顾问 2010-10-23
  • 打赏
  • 举报
回复
string result = Regex.Replace("0003458", @"\d+$", delegate(Match m) { return (int.Parse(m.Value) + 1).ToString().PadLeft(m.Length, '0'); });
lid123456 2010-10-23
  • 打赏
  • 举报
回复
to:wuyq11
大侠的方法应该没有问题,正在试验
wuyq11 2010-10-23
  • 打赏
  • 举报
回复
(from a in arr select Convert.ToInt64(a.id)).Max().ToString("00000000");
还想懒够 2010-10-23
  • 打赏
  • 举报
回复
存入整型
展示的时候i.ToString("000000000")
wuyq11 2010-10-23
  • 打赏
  • 举报
回复
int.Parse获取整数+1
padLeft(8,'0')
phil999 2010-10-23
  • 打赏
  • 举报
回复
3楼,5楼,6楼,你们的头像让我浑身直冷
lid123456 2010-10-23
  • 打赏
  • 举报
回复
我说了,不能利用数据库来取值,因为中间还有换发票的时候,这时号就不一定和数据里的连续了。我就想知道已知道该值的情况下如何自增,直接加可能不行吧。一取整,前面的零就没有了。
shiyuyao1987 2010-10-23
  • 打赏
  • 举报
回复
在不行,可以添加后使用触发器去修改
shiyuyao1987 2010-10-23
  • 打赏
  • 举报
回复
很多人也可以啊,每个用户登录时,先判断这个缓存值是否存在,不存在就读数据库存入缓存,存在就不用管了
lid123456 2010-10-23
  • 打赏
  • 举报
回复
这样也不行,可能有多人并行操作,不能以数据库最后一次的为准,每天第一次工作时是由用户自己录入的,以后系统根据这个值去自增
shiyuyao1987 2010-10-23
  • 打赏
  • 举报
回复
进入系统时,把最后一个号码读入缓存中,然后只要有添加操作就更新缓存
lid123456 2010-10-23
  • 打赏
  • 举报
回复
关键是字符串前可能有零,而且零的位置不确定,还有不能使用数据库自增,因为每次购来的发票号可能起始号不同。
jinxuliang 2010-10-23
  • 打赏
  • 举报
回复
1、把最后打印的号码记下来,自动加1
2、利用数据库的自增字段

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧