中易网

用C#写一个自增序号的程序,要求是三位数如001,002,如果新添数据编号重复,则自动递增

答案:1  悬赏:0  
解决时间 2021-01-15 22:56
  • 提问者网友:呐年旧曙光
  • 2021-01-15 02:13
用C#写一个自增序号的程序,要求是三位数如001,002,如果新添数据编号重复,则自动递增
最佳答案
  • 二级知识专家网友:夜余生
  • 2021-01-15 03:10
一般的思路,都是找地方,数据库也好,XML也行把已用的序号存起来,然后每次使用依次累加1,
取出来后再format成你要的string 如 Seq.ToString("00#");追问能写一个范例吗,谢谢,我是初学者,很多东西不太懂追答给个我在用的方案给你吧,我用procedure+table实现
1.首先是建立table存储序号,有两个字段CODE1,CODE2
CODE1是固定码,因为你可能很多项目要用到自增型
CODE2就是已用掉的序号
这样用code1做区别,比如项目1我可以用A01
或者你可以用更灵活点,用项目名称+年月,例:OT201207,这样你的序号可以做到每个月从1又开始重新计数

表脚本如下
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblGetNumber]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tblGetNumber]
GO
CREATE TABLE [dbo].[tblGetNumber] (
[Code1] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL ,
[Code2] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE INDEX [IDX_CODE1] ON [dbo].[tblGetNumber]([Code1]) ON [PRIMARY]
GO

2.
2. 其次建立procedure,实现取号作业,取成功则code2+1,

procedure 脚本如下
CREATE PROCEDURE [dbo].[sp_GetNumber]
(
@Code1 nvarchar(50),
@Code2 int output
)
AS
BEGIN
select @Code2 = ( Select Max(Code2) From tblGetNumber Where Code1 = @Code1)+1
select @Code2=( select isnull(@Code2, 1))
If @Code2=1
BEGIN
Insert Into tblGetNumber Values(@Code1, @Code2)
END
Else
BEGIN
Update tblGetNumber Set Code2=@Code2 Where Code1=@Code1
END
END
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息