用C#写一个自增序号的程序,要求是三位数如001,002,如果新添数据编号重复,则自动递增
1个回答
展开全部
一般的思路,都是找地方,数据库也好,XML也行把已用的序号存起来,然后每次使用依次累加1,
取出来后再format成你要的string 如 Seq.ToString("00#");
取出来后再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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询