asp客户订单号怎么随机生成6位的代码
请大家帮个忙,我想ASP客户生成订单能不能随机生成(只是6位)这个代码怎么写。我现在写出生成20121109001339订单号的代码(可是太长了)我想随机生成6位就行了例如290313这样的号或是7为也行。这个代码怎么写,请大哥帮帮忙。谢谢了
[解决办法]
asp流水号怎么写,小弟不会,请大哥赶紧帮帮忙
[解决办法]
6位随机的话太少了 容易重复。
如果要6位,那就不如直接用计数的方式了。用数据库自增字段。前面加0得到6位.
s = Right("00000" & id, 6)
[解决办法]
生成一个顺序的表,然后从里边拿6位数。用过的delete
[解决办法]
好深奥的问题,菜鸟经过
[解决办法]
用121109 这个不就6位了
[解决办法]
首先 你要估算订单量大小
下面的供你参考
如果是7位订单号:0 00 0000
第1位:表示单据分类 1:订单 2:出库单 3:入库单…………(用字母开头也可以)
第2,3位:表示年份 <%=right(year(date),2)%>
最后几位流水号:按照2楼的方法做!
建一张表,用来存储当前订单最后四位。每次使用时,取出来+1就可以了。如果订单删除了,请不要-1。订单删除用逻辑删除。
年度结束以后,将存储当前订单最后四位的字段重置为0,新一年的订单号又重新开始鸟。。。。。
[解决办法]
怎么写还是不太会,有没有源码的例子。
[解决办法]
不重复的,可以这么写
<%
Randomize
OrderID = Year(Now) & Right("0"& Month(Now),2) & Right("0"& Day(Now),2) & Right("0"& Hour(Now),2) & Right("0"& Minute(Now),2) & Right("0"& Second(Now),2) Right("00000"& Round(Rnd*89999,0),5)
%>
[解决办法]
<%dim shijian,dingdan
shijian=now()
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from shopxp_action where username='"&username&"' and zhuangtai=7",conn,1,3
if request.Cookies("shopxp")("username")<>"" then
dingdan=now()
dingdan=replace(trim(dingdan),"-","")
dingdan=replace(dingdan,":","")
dingdan=replace(dingdan," ","")
else
dingdan=username
end if
do while not rs.eof
rs("zhuangtai")=1
rs("dingdan")=dingdan
rs("dingdan2")=dingdan2
rs.movenext
loop
rs.close%>
帮我看看这个代码怎么加上一个随机数字,防止在同一秒钟下订单是一样的(现在订单显示是20121112220749)
一直到秒。大家帮帮我,我不知道该在什么地方加个随机好防止订单一样了
[解决办法]
我这这个后面加了dingdan=now()&Right("00000"& Round(Rnd*89999,0),5)订单号太长了,能不能短的订单号显示是2012111222252863499,能不能断点。大家帮小弟想想。谢谢了。老板急要。
[解决办法]
随机生成?不能保证不重复!建议你用流水号!方便简单!
[解决办法]
这段代码怎么改成流水号,帮帮我
<%dim shijian,dingdan
shijian=now()
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from shopxp_action where username='"&username&"' and zhuangtai=7",conn,1,3
if request.Cookies("shopxp")("username")<>"" then
dingdan=now()
dingdan=replace(trim(dingdan),"-","")
dingdan=replace(dingdan,":","")
dingdan=replace(dingdan," ","")
else
dingdan=username
end if
do while not rs.eof
rs("zhuangtai")=1
rs("dingdan")=dingdan
rs("dingdan2")=dingdan2
rs.movenext
loop
rs.close%>
[解决办法]
6位随机数,不保证不重复
Function gen_key(digits)
dim char_array(10)
char_array(1) = "1"
char_array(2) = "2"
char_array(3) = "3"
char_array(4) = "4"
char_array(5) = "5"
char_array(6) = "6"
char_array(7) = "7"
char_array(8) = "8"
char_array(9) = "9"
randomize
do while len(output) < digits
num = char_array(Int((9 - 1 + 1) * Rnd + 0))
output = output + num
loop
gen_key = output
End Function
strrad=gen_key(6)
response.Write(strrad)
[解决办法]
<%
Function gen_key(digits)
dim char_array(10)
char_array(1) = "1"
char_array(2) = "2"
char_array(3) = "3"
char_array(4) = "4"
char_array(5) = "5"
char_array(6) = "6"
char_array(7) = "7"
char_array(8) = "8"
char_array(9) = "9"
randomize
do while len(output) < digits
num = char_array(Int((9 - 1 + 1) * Rnd + 0))
output = output + num
loop
gen_key = output
End Function
strrad=gen_key(6)
response.Write(strrad)
%>
[解决办法]
流水号sql server下的解决方案,可以参数一下;
create table T10003 (
F0000int identity(1,1)primary key,--数据ID
F0001nvarchar(20)not null,--数据编码编码
F0002nvarchar(5),--前缀
F0003nvarchar(20),--对应的表名
F0004nvarchar(200),--描述
F0005smallint,--编码方式
F0006smallint,--编码宽度
F0007int,--起始编码
F0008int,--终止编码
F0009int,--当前编码
F0010nvarchar(20),--当前编码修改者
F0011datetime,--当前编码时间
F0012nvarchar(1000),--备注
F0013smallint--手工方式
)
ALTER PROC [dbo].[P10003](@F0001 varchar(10),@F0002 varchar(20) output)
AS
BEGIN
Declare
@NowNo int,
@NextNo int,
@MinNo int,
@MaxNo int,
@Method int,
@Width int
select @NowNo=F0009, @MinNo=F0007, @MaxNo=F0008, @Method=F0005, @Width=F0006
from T10003
WHERE F0001 = @F0001
if @NowNo<@MinNo or @NowNo>(@MaxNo-1)
select @NextNo = @MinNo
else
select @NextNo = @NowNo + 1
UPDATE T10003
SET F0009 = @NextNo
WHERE F0001 = @F0001
if @Method=0
SELECT @F0002=F0002 + convert(varchar,F0009)
FROM T10003
WHERE F0001 = @F0001
else
SELECT @F0002= F0002 + right('000000000000000000'+convert(varchar,F0009),@Width)
FROM T10003
WHERE F0001 = @F0001
END
