首页 新闻 会员 周边

求一编号处理解决方案

0
悬赏园豆:20 [已解决问题] 解决于 2009-12-29 14:51

我的数据库字段ID是自动增长的,但是客户要求把这个ID显示出来,并且按四位显示。

比如1,显示出来就是0001。我知道toString()好像是可以,但是不知道具体怎么实现。

请各路高手指点一二.....

天堂口的主页 天堂口 | 小虾三级 | 园豆:514
提问于:2009-12-29 13:27
< >
分享
最佳答案
0

string a = "1";  

a.PadLeft(4, "0");

这样子就是左填充0字符了,长度为补齐后共4位,以此类推

收获园豆:10
死神的背影 | 小虾三级 |园豆:667 | 2009-12-29 13:49
补充下,用a.PadLeft(4, '0'); 引号打错了
死神的背影 | 园豆:667 (小虾三级) | 2009-12-29 14:13
public static string getStrID(int ID) { string str = ID.ToString(); if (str.Length <= 4) { return str.PadLeft(4 - str.Length, '0'); } else return str; }
天堂口 | 园豆:514 (小虾三级) | 2009-12-29 14:47
其他回答(2)
0

可以通过functino来解决

代码
use
TestDb
go


Create function GetTop4CharByPKID
(
@PKID int)
returns nchar(4)
as
Begin
Declare @returnchar nchar(4)
set @returnchar=(select
case
when @PKID between 1 and 9 then '000'+cast(@PKID as nchar(4))
when @PKID between 10 and 99 then '00'+cast(@PKID as nchar(4))
when @PKID between 100 and 999 then '0'+cast(@PKID as nchar(4))
when @PKID between 999 and 9999 then '0'+cast(@PKID as nchar(4))
when @PKID >9999 then '....'
end
)
return @returnchar
end

go

select dbo.GetTop4CharByPKID(1) as Number
union all
select dbo.GetTop4CharByPKID(99) as Number
union all
select dbo.GetTop4CharByPKID(100) as Number
union all
select dbo.GetTop4CharByPKID(599) as Number
union all
select dbo.GetTop4CharByPKID(50229) as Number

 

执行结果:

Number
0001
0099
0100
0599
....

 

收获园豆:10
邀月 | 园豆:25475 (高人七级) | 2009-12-29 14:08
你这个办法也是可行的。但是当我要查询的不只是ID这列,还有其他的时候,我就不知道应该怎么做了。
支持(0) 反对(0) 天堂口 | 园豆:514 (小虾三级) | 2009-12-29 14:48
而且如果我在LINQ TO sql 里面做查询的时候,我也不知道应该怎么调用这个函数来把这个ID和我其他要查询的列放一起。
支持(0) 反对(0) 天堂口 | 园豆:514 (小虾三级) | 2009-12-29 14:49
0

ToString是这样:

 int userId = 1;
 Console.WriteLine(userId.ToString("0000"));

Cheese | 园豆:509 (小虾三级) | 2009-12-29 14:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册