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

 我来答
彩虹下的微笑Mi
2012-08-06 · 超过65用户采纳过TA的回答
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:160万
展开全部
一般的思路,都是找地方,数据库也好,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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式