有关随机数、循环的问题,在线等待

fj47 2002-12-24 02:38:02
我想让系统随机生成帐号(7或8位),考虑到生成的帐号可能已经存在,所以需要到数据库中验证一下,如果已经存在,则重新生成一个,这要用到一个循环,请问要如何做呀?附上源代码
<!--#include file="conn.asp"-->
<%
netname =trim(request.form("netname"))
pwd =trim(request.form("pwd"))
email =trim(request.form("email"))
id_type =request.form("id_type")
cid =request.form("cid")
face =request.form("face")
'从这开始随机生成帐号
dim a
a=second(time)
a=cint(a)
if a mod 2 = 0 then
Randomize
userid =Int((9999999 - 1 + 1) * Rnd + 1)
else
Randomize
userid =Int((99999999 - 1 + 1) * Rnd + 1)
end if
'帐号生成完毕
if request.form("submit")<>"" then
dim rs,rc,sql
set rs=server.createobject("adodb.recordset")
sql="select * from user"
rs.open sql,conn,3,2
rs.addnew
Randomize
rs("userid") =userid
rs("netname") =netname
rs("pwd") =pwd
rs("email") =email
rs("id_type") =id_type
rs("cid") =cid
rs("face") =face
rs.update
rs.close
set rc=server.createobject("adodb.recordset")
sql="select u_id from user where netname='" & netname &"'"
rc.open sql,conn,1,1
session("u_id") =rc("u_id")
session("netname")=netname
rc.close
set conn=nothing
%>
...全文
81 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
fj47 2002-12-26
  • 打赏
  • 举报
回复
我也认为奇怪呀,但系统真是这样报错的~~
YeeDRain 2002-12-24
  • 打赏
  • 举报
回复
你的分不要也罢,嘿嘿,CSDN变成新手要码的地方了,嘿嘿,要饭??
YeeDRain 2002-12-24
  • 打赏
  • 举报
回复
楼主vb不及格
do...while还要wend???嘿嘿
fj47 2002-12-24
  • 打赏
  • 举报
回复
to YeeDRain(魔鬼也会哭) 你的回复出错了,缺少wend呀
fj47 2002-12-24
  • 打赏
  • 举报
回复
帮一下呀
fj47 2002-12-24
  • 打赏
  • 举报
回复
谁可以在我提供的代码上修改一下呀
YeeDRain 2002-12-24
  • 打赏
  • 举报
回复
to tdl982324(石井坚)
do while true是什么?死循环吗?嘿嘿
Reker熊 2002-12-24
  • 打赏
  • 举报
回复
一个例子:

<%
StartTime=Timer()
Dim Array1(5)
Array1(0)=11111111
Array1(1)=2312311
Array1(2)=2321232
Array1(3)=23213239
Array1(4)=33239877
Do While True
Randomize
UID=Int((99999999-1000000)*Rnd()+1000000)
For i=0 To Ubound(Array1)
If UID<>Array1(i) Then
EndTime=Timer()
Response.Write UID&"耗时:"&FormatNumber((EndTime-StartTime)*1000,3)
Exit Do
End If
Next
Loop
%>
YeeDRain 2002-12-24
  • 打赏
  • 举报
回复
在while上面加上rs.close
fj47 2002-12-24
  • 打赏
  • 举报
回复
a=true
do
sql="select * from table where userid=" & userid
rs.open sql,conn,1,1
a=rs.eof
if a then


while a
是不是少了点什么
YeeDRain 2002-12-24
  • 打赏
  • 举报
回复
抱歉,没写完就提交了
a=true
do
randomize
userid =Int((9999999 - 1 + 1) * Rnd + 1)
sql="select * from table where userid=" & userid
rs.open sql,conn,1,1
a=rs.eof
if a then
添加
end if
while a
YeeDRain 2002-12-24
  • 打赏
  • 举报
回复
a=true
do
sql="select * from table where userid=" & userid
rs.open sql,conn,1,1
a=rs.eof
if a then


while a
YeeDRain 2002-12-24
  • 打赏
  • 举报
回复
还有把你rs.addnew下面那个randomize去掉,上面的条件中可以加上为假的条件
sql="select * from table where userid=" & userid
rs.open sql,conn,1,1
if rs.eof then
添加
else
重新生成uid
end if
fj47 2002-12-24
  • 打赏
  • 举报
回复
这种方法可以避免重复id的出现,但是,这样就无法加入新的帐号了,应该做成一个循环吧,如果重复就再随机生成一个吧
fj47 2002-12-24
  • 打赏
  • 举报
回复
分不够可以再加
YeeDRain 2002-12-24
  • 打赏
  • 举报
回复
sql="select * from table where userid=" & userid
rs.open sql,conn,1,1
if rs.eof then
添加
end if

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧