请教8位无重复字母ID如何生成,特殊需要要保存数据库,请提供代码谢谢
解决方案 »
- asp.net分页时页面传参,参数不显示
- asp.net(c#)中 我怎么样一笔笔审核资料
- 日历日记
- 关于日期字段查询的性能问题
- 关于导出Excel时,效率的一个问题,分不够可以再加!
- 如何把图形转化为二进制数
- 求教:如何将一个二维数组放入一个ViewState中??为什么一维数组可以,多维数组不行啊?
- session保存在URL后,无法加载css、js文件与图片!
- 我想把连接数据库单独写在一个类文件中,这样可以方便其他文件调用,可我调试时总是出错,哪位能不能够提供一份源码让我参考一下?谢谢!
- 能告诉我哪里有crystal report相关的书籍下载啊?
- 如何检查并去除asp.net网站中的木马代码?
- 求无刷新,二级联动菜单的源码
//全是数字的随机数 ####-####-####-####
//全是大写字母的随机数 $$$$-$$$$-$$$$-$$$$
//大写字母和数字混合随机数 ****-****-****-****
//前4位为1234后面分别是4位数字4位字母4位混合的随机数,没有分隔符 1234####$$$$****
string str = null;MyRandom rnd1 = new MyRandom("****-####-####");for (int i = 0; i < 100; i++)
{
str += rnd1.GetRandomNum() + "<br />";
}this.Label1.Text = str;
然后转成字符串,截取8位行不行?
--5.2.3 生成纯字母随机编号的示例(大小写混合)
--取得随机数的视图
CREATE VIEW v_RAND
AS
SELECT re=STUFF(RAND(),1,2,'')
GO--生成随机编号的函数
CREATE FUNCTION f_RANDBH(@BHLen int)
RETURNS varchar(50)
AS
BEGIN
DECLARE @r varchar(50)
IF NOT(ISNULL(@BHLen,0) BETWEEN 1 AND 50)
SET @BHLen=10 SELECT @r=CHAR(
CASE WHEN SUBSTRING(re,1,1)>5 THEN 97 ELSE 65 end
+(SUBSTRING(re,1,1)
+SUBSTRING(re,2,1)
+SUBSTRING(re,3,1))%26)
+CHAR(
CASE WHEN SUBSTRING(re,4,1)>5 THEN 97 ELSE 65 end
+(SUBSTRING(re,4,1)
+SUBSTRING(re,5,1)
+SUBSTRING(re,6,1))%26)
FROM v_RAND
WHILE LEN(@r)<@BHLen
SELECT @r=@r+CHAR(
CASE WHEN SUBSTRING(re,1,1)>5 THEN 97 ELSE 65 end
+(SUBSTRING(re,1,1)
+SUBSTRING(re,2,1)
+SUBSTRING(re,3,1))%26)
+CHAR(
CASE WHEN SUBSTRING(re,4,1)>5 THEN 97 ELSE 65 end
+(SUBSTRING(re,4,1)
+SUBSTRING(re,5,1)
+SUBSTRING(re,6,1))%26)
FROM v_RAND
RETURN(LEFT(@r,@BHLen))
END
GO--调用
SELECT dbo.f_RANDBH(6),dbo.f_RANDBH(8)
--结果: YZVBOj LASCrhSO--5.2.3 生成纯字母随机编号的示例(仅大小或者小写)
--取得随机数的视图
CREATE VIEW v_RAND
AS
SELECT re=STUFF(RAND(),1,2,'')
GO--生成随机编号的函数
CREATE FUNCTION f_RANDBH(@BHLen int)
RETURNS varchar(50)
AS
BEGIN
DECLARE @r varchar(50)
IF NOT(ISNULL(@BHLen,0) BETWEEN 1 AND 50)
SET @BHLen=10 SELECT @r=CHAR(65
+(SUBSTRING(re,1,1)
+SUBSTRING(re,2,1)
+SUBSTRING(re,3,1))%26)
+CHAR(65
+(SUBSTRING(re,4,1)
+SUBSTRING(re,5,1)
+SUBSTRING(re,6,1))%26)
FROM v_RAND
WHILE LEN(@r)<@BHLen
SELECT @r=@r+CHAR(65
+(SUBSTRING(re,1,1)
+SUBSTRING(re,2,1)
+SUBSTRING(re,3,1))%26)
+CHAR(65
+(SUBSTRING(re,4,1)
+SUBSTRING(re,5,1)
+SUBSTRING(re,6,1))%26)
FROM v_RAND
RETURN(LEFT(@r,@BHLen))
END
GO--调用
SELECT dbo.f_RANDBH(6),dbo.f_RANDBH(8)
--结果: UJXIJD PAPGTQUX
2楼 MyRandom 怎么定义,有引用吗???8楼不错但是我想改都小写,怎么调用或者改
--5.2.3 生成纯字母随机编号的示例(仅大小或者小写)
--小写,把65改成97
--取得随机数的视图
CREATE VIEW v_RAND
AS
SELECT re=STUFF(RAND(),1,2,'')
GO--生成随机编号的函数
CREATE FUNCTION f_RANDBH(@BHLen int)
RETURNS varchar(50)
AS
BEGIN
DECLARE @r varchar(50)
IF NOT(ISNULL(@BHLen,0) BETWEEN 1 AND 50)
SET @BHLen=10 SELECT @r=CHAR(97
+(SUBSTRING(re,1,1)
+SUBSTRING(re,2,1)
+SUBSTRING(re,3,1))%26)
+CHAR(97
+(SUBSTRING(re,4,1)
+SUBSTRING(re,5,1)
+SUBSTRING(re,6,1))%26)
FROM v_RAND
WHILE LEN(@r)<@BHLen
SELECT @r=@r+CHAR(97
+(SUBSTRING(re,1,1)
+SUBSTRING(re,2,1)
+SUBSTRING(re,3,1))%26)
+CHAR(97
+(SUBSTRING(re,4,1)
+SUBSTRING(re,5,1)
+SUBSTRING(re,6,1))%26)
FROM v_RAND
RETURN(LEFT(@r,@BHLen))
END
GO
select dbo.f_RANDBH(8)
--kbdlllsa