一、为什么数据库里明明没有重复的数据却提示已经存在呢?
二、为什么都进入Then语句了,还会执行Else后面的语句呢?
晕啊,晕。
sql="select * from [Site_Data] where URL='"&URL&"'"
rs.open sql,conn,1,3
If not rs.eof Then
Errmsg=Errmsg+"您的这个网站已经在数据库中存在,不必再次提交!"
EXIT SUB
else
''''''''''开始写入数据
rs.addnew
rs("uid")=uid
rs("idate")=Date()
rs.update
ID=rs("ID")
end if
rs.close
26 个解决方案
#1
不会吧,楼主再用别的方法试试
#2
你上面那段是做成过程的形式吗?
改:If not rs.eof Then 为 If not (rs.bof and rs.eof) Then
改:EXIT SUB 为 response.end
改:If not rs.eof Then 为 If not (rs.bof and rs.eof) Then
改:EXIT SUB 为 response.end
#3
Errmsg=Errmsg+"您的这个网站已经在数据库中存在,不必再次提交!"
response.end
后面要根上response.end
知道吗?
response.end
后面要根上response.end
知道吗?
#4
一开始我就是用If not (rs.bof and rs.eof) Then的,用response.end可以阻止继续执行,但为什么IF then后面的语句和Else后面的都会执行啊?
#5
if rst.eof or rst.bof then
'写入数据
else
'您的这个网站已经在数据库中存在,不必再次提交!"
end if
'写入数据
else
'您的这个网站已经在数据库中存在,不必再次提交!"
end if
#6
if request("Action")="addsave" then
call addsave()
else
call main()
end if
………………
sub addsave()
sid=request.form("child")
topic=CheckStr(trim(request.form("topic")))
author=CheckStr(Trim(request.form("author")))
about=HTMLEnCode(request.form("about"))
AdText=CheckStr(request.form("AdText"))
AdURL=CheckStr(request.form("AdURL"))
If sid="" or topic="" or about="" then
Errmsg=Errmsg+"<li>您没有填写完整,信息没有发布,请返回重新填写!"
exit sub
end if
''''''''''开始写入数据
sql="select * from [Article_Joke] where topic='"&topic&"'"
rs.open sql,conn,1,3
if rs.bof or rs.eof then
rs.addnew
rs("uid")=uid
rs("sid")=sid
rs("topic")=topic
rs("author")=author
rs("about")=about
rs("Hits")=0
rs("ETop")=0
rs("Chk")=2
IF AdText<>"" OR AdURL<>"" THEN
if AdText="" then AdText=AdURL
rs("Ad")=AdText&"|"&AdURL
Response.cookies("ceo")("AdText")=AdText
Response.cookies("ceo")("AdURL")=AdURL
END IF
rs("idate")=Date()
rs.update
else
Errmsg=Errmsg+"<li>这篇文章(<a href=/User/Show/joke.asp?ID="&RS("ID")&" target=_blank>点击这里查看</a>)在数据库里已经存在,请不要重复提交,仍然非常感谢您的参与!"
exit sub
rs.close
Response.End()
end if
rs.close
CloseDb%>
非常奇怪的一件事情,就是我自己添加一条信息,提示已经存在,不要再添加了,然后点击查看发现那条就是我添加的,说明:第一次,加入数据了,然后又调用了这段代码了。不然总不会If 和Then后面的语句都执行吧?
各位是否能帮忙找找到底哪里错了,我绝望了。
call addsave()
else
call main()
end if
………………
sub addsave()
sid=request.form("child")
topic=CheckStr(trim(request.form("topic")))
author=CheckStr(Trim(request.form("author")))
about=HTMLEnCode(request.form("about"))
AdText=CheckStr(request.form("AdText"))
AdURL=CheckStr(request.form("AdURL"))
If sid="" or topic="" or about="" then
Errmsg=Errmsg+"<li>您没有填写完整,信息没有发布,请返回重新填写!"
exit sub
end if
''''''''''开始写入数据
sql="select * from [Article_Joke] where topic='"&topic&"'"
rs.open sql,conn,1,3
if rs.bof or rs.eof then
rs.addnew
rs("uid")=uid
rs("sid")=sid
rs("topic")=topic
rs("author")=author
rs("about")=about
rs("Hits")=0
rs("ETop")=0
rs("Chk")=2
IF AdText<>"" OR AdURL<>"" THEN
if AdText="" then AdText=AdURL
rs("Ad")=AdText&"|"&AdURL
Response.cookies("ceo")("AdText")=AdText
Response.cookies("ceo")("AdURL")=AdURL
END IF
rs("idate")=Date()
rs.update
else
Errmsg=Errmsg+"<li>这篇文章(<a href=/User/Show/joke.asp?ID="&RS("ID")&" target=_blank>点击这里查看</a>)在数据库里已经存在,请不要重复提交,仍然非常感谢您的参与!"
exit sub
rs.close
Response.End()
end if
rs.close
CloseDb%>
非常奇怪的一件事情,就是我自己添加一条信息,提示已经存在,不要再添加了,然后点击查看发现那条就是我添加的,说明:第一次,加入数据了,然后又调用了这段代码了。不然总不会If 和Then后面的语句都执行吧?
各位是否能帮忙找找到底哪里错了,我绝望了。
#7
if rs.eof and rs.bof then
......
......
#8
if rs.eof and rs.bof then
if rs.bof or rs.eof then
if rs.eof then
这些到底什么区别啊,糊涂了。
if rs.bof or rs.eof then
if rs.eof then
这些到底什么区别啊,糊涂了。
#9
If not rs.eof Then
Errmsg=Errmsg+"您的这个网站已经在数据库中存在,不必再次提交!" '这执行了
EXIT SUB
else ,这就不可能执行了
''''''''''开始写入数据
rs.addnew
rs("uid")=uid
rs("idate")=Date()
rs.update
ID=rs("ID")
end if
Errmsg=Errmsg+"您的这个网站已经在数据库中存在,不必再次提交!" '这执行了
EXIT SUB
else ,这就不可能执行了
''''''''''开始写入数据
rs.addnew
rs("uid")=uid
rs("idate")=Date()
rs.update
ID=rs("ID")
end if
#10
如果没有数据呢就用if rs.eof and rs.bof判断
rs.eof 和rs.bof分别表示数据的最后一天的下一条和第一条的上一条记录
是不是很晕,但我只能这么给你解释
rs.eof 和rs.bof分别表示数据的最后一天的下一条和第一条的上一条记录
是不是很晕,但我只能这么给你解释
#11
这个我知道啊,那我表里已经有其他数据存在,只是查找有没有和这条数据相同的,这样的话没有用什么表示?if rs.eof and rs.bof吗?
还有我上面的代码为什么if和then后面的都执行了?
还有我上面的代码为什么if和then后面的都执行了?
#12
用sql写吧!rs.eof就是把所有记录找一次都没有找到
#13
对啊,比如查找name="aaa"
rs.open "select * from table where name='aaa'"
if rs.eof and rs.bof then
response.write "no data!"
else
response.write name
end if
rs.open "select * from table where name='aaa'"
if rs.eof and rs.bof then
response.write "no data!"
else
response.write name
end if
#14
rs.open "select * from table where name='aaa'"
if rs.eof and rs.bof then
response.write "no data!"
else
response.write name
end if
我的就是这么写的啊。
但真的会发生——写入数据,然后告诉我该数据已经存在,不要再提交了,后来我专门加了句代码看已经存在的是那条记录,结果发现就是我刚刚加的那条,狂晕。
我想是重复执行了。但也找不到哪里重复了。代码都在上面贴出来了。
http://net.auak.com/User/Net/site_new.asp
大家到这个网站登陆页面看看,或许就会遇到这种情况,有时候有没有的。
if rs.eof and rs.bof then
response.write "no data!"
else
response.write name
end if
我的就是这么写的啊。
但真的会发生——写入数据,然后告诉我该数据已经存在,不要再提交了,后来我专门加了句代码看已经存在的是那条记录,结果发现就是我刚刚加的那条,狂晕。
我想是重复执行了。但也找不到哪里重复了。代码都在上面贴出来了。
http://net.auak.com/User/Net/site_new.asp
大家到这个网站登陆页面看看,或许就会遇到这种情况,有时候有没有的。
#15
up
#16
这段是我在用的
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open "select * from musiclist where title='"&ad_title&"' and url='"&Ad_url&"'",Conn,1,3
If Rs.Eof Then
Rs.Addnew
Rs("title")=Ad_title
Rs("url")=Ad_url
Rs("class")=Ad_class
Rs("type")=Ad_type
Rs("lyric")=Ad_lyric
Rs.Update
%>
<script>alert('添加成功,返回请刷新页面!');history.back();</script>
<%else%>
<script>alert('此歌曲已存在!');history.back();</script>
<%
End If
Rs.Close
set rs = nothing%>
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open "select * from musiclist where title='"&ad_title&"' and url='"&Ad_url&"'",Conn,1,3
If Rs.Eof Then
Rs.Addnew
Rs("title")=Ad_title
Rs("url")=Ad_url
Rs("class")=Ad_class
Rs("type")=Ad_type
Rs("lyric")=Ad_lyric
Rs.Update
%>
<script>alert('添加成功,返回请刷新页面!');history.back();</script>
<%else%>
<script>alert('此歌曲已存在!');history.back();</script>
<%
End If
Rs.Close
set rs = nothing%>
#17
我出现的情况是,写入数据较少的时候,可能会重复写入2次,但信息量较大的时候就不大会写入2次,
如果判断是否有重复的化酒会提示已经存在了,但这条记录其实就是刚刚提交的数据,就是2次里的第一次。
比如这么一个过程:
1-获取表单内容
2-写入数据
3-提示成功信息
1操作几次不知道,2就是上面我说的情况,3在没有判断的情况下是提示成功信息一次,否则会提示已经存在。
奇怪,奇怪
如果判断是否有重复的化酒会提示已经存在了,但这条记录其实就是刚刚提交的数据,就是2次里的第一次。
比如这么一个过程:
1-获取表单内容
2-写入数据
3-提示成功信息
1操作几次不知道,2就是上面我说的情况,3在没有判断的情况下是提示成功信息一次,否则会提示已经存在。
奇怪,奇怪
#18
代码看不出有什么问题
但你的问题存在,说明肯定有问题
把你的SQL语句response.write 看看,是不是你所要的
看看库里的记录跟查询的条件是不是完全相同
但你的问题存在,说明肯定有问题
把你的SQL语句response.write 看看,是不是你所要的
看看库里的记录跟查询的条件是不是完全相同
#19
if rs.eof then
'写记录
else
'提示
end if
这样的结构不会错的,你提示最好放到后面,或者加上response.end不然提示可能会出错误
'写记录
else
'提示
end if
这样的结构不会错的,你提示最好放到后面,或者加上response.end不然提示可能会出错误
#20
不是代码的问题,是你的浏览器的问题,
我都碰到无数次了,明明有问题的页面,
第一次刷新是500错误,第二次刷新又没错误了,
但是新开一个浏览器再第一次打开那页面又是500错误。
你的可能也是一样的错误,刷新时,掉出了以前的缓冲页面。
我都碰到无数次了,明明有问题的页面,
第一次刷新是500错误,第二次刷新又没错误了,
但是新开一个浏览器再第一次打开那页面又是500错误。
你的可能也是一样的错误,刷新时,掉出了以前的缓冲页面。
#21
可能是你的代码里面别处有问题,被浏览器诬赖到这段代码了 :p
#22
不是啊,我一直用myie的,现在用ie还是这样啊。
我把代码全部整理出来了,大家帮忙看看啊。
http://www.zugou.com/a.rar
添加那个页面的所有相关页面都在里面了,就4个页面,不是很大,派托各位大哥帮忙看看啊。
我把代码全部整理出来了,大家帮忙看看啊。
http://www.zugou.com/a.rar
添加那个页面的所有相关页面都在里面了,就4个页面,不是很大,派托各位大哥帮忙看看啊。
#23
if rs.eof and rs.bof then
#24
代码如下,各位帮忙看看啊,要钱也可以的,急啊
http://club.zugou.com/ShowPost.asp?id=14
http://club.zugou.com/ShowPost.asp?id=14
#25
if rst.eof or rst.bof then
'写入数据
else
'您的这个网站已经在数据库中存在,不必再次提交!"
end if
'写入数据
else
'您的这个网站已经在数据库中存在,不必再次提交!"
end if
#26
没看到你的代码里面有你提到的相关代码
就从这个现象看,肯定是你的这段代码被执行了2次。
就从这个现象看,肯定是你的这段代码被执行了2次。
#1
不会吧,楼主再用别的方法试试
#2
你上面那段是做成过程的形式吗?
改:If not rs.eof Then 为 If not (rs.bof and rs.eof) Then
改:EXIT SUB 为 response.end
改:If not rs.eof Then 为 If not (rs.bof and rs.eof) Then
改:EXIT SUB 为 response.end
#3
Errmsg=Errmsg+"您的这个网站已经在数据库中存在,不必再次提交!"
response.end
后面要根上response.end
知道吗?
response.end
后面要根上response.end
知道吗?
#4
一开始我就是用If not (rs.bof and rs.eof) Then的,用response.end可以阻止继续执行,但为什么IF then后面的语句和Else后面的都会执行啊?
#5
if rst.eof or rst.bof then
'写入数据
else
'您的这个网站已经在数据库中存在,不必再次提交!"
end if
'写入数据
else
'您的这个网站已经在数据库中存在,不必再次提交!"
end if
#6
if request("Action")="addsave" then
call addsave()
else
call main()
end if
………………
sub addsave()
sid=request.form("child")
topic=CheckStr(trim(request.form("topic")))
author=CheckStr(Trim(request.form("author")))
about=HTMLEnCode(request.form("about"))
AdText=CheckStr(request.form("AdText"))
AdURL=CheckStr(request.form("AdURL"))
If sid="" or topic="" or about="" then
Errmsg=Errmsg+"<li>您没有填写完整,信息没有发布,请返回重新填写!"
exit sub
end if
''''''''''开始写入数据
sql="select * from [Article_Joke] where topic='"&topic&"'"
rs.open sql,conn,1,3
if rs.bof or rs.eof then
rs.addnew
rs("uid")=uid
rs("sid")=sid
rs("topic")=topic
rs("author")=author
rs("about")=about
rs("Hits")=0
rs("ETop")=0
rs("Chk")=2
IF AdText<>"" OR AdURL<>"" THEN
if AdText="" then AdText=AdURL
rs("Ad")=AdText&"|"&AdURL
Response.cookies("ceo")("AdText")=AdText
Response.cookies("ceo")("AdURL")=AdURL
END IF
rs("idate")=Date()
rs.update
else
Errmsg=Errmsg+"<li>这篇文章(<a href=/User/Show/joke.asp?ID="&RS("ID")&" target=_blank>点击这里查看</a>)在数据库里已经存在,请不要重复提交,仍然非常感谢您的参与!"
exit sub
rs.close
Response.End()
end if
rs.close
CloseDb%>
非常奇怪的一件事情,就是我自己添加一条信息,提示已经存在,不要再添加了,然后点击查看发现那条就是我添加的,说明:第一次,加入数据了,然后又调用了这段代码了。不然总不会If 和Then后面的语句都执行吧?
各位是否能帮忙找找到底哪里错了,我绝望了。
call addsave()
else
call main()
end if
………………
sub addsave()
sid=request.form("child")
topic=CheckStr(trim(request.form("topic")))
author=CheckStr(Trim(request.form("author")))
about=HTMLEnCode(request.form("about"))
AdText=CheckStr(request.form("AdText"))
AdURL=CheckStr(request.form("AdURL"))
If sid="" or topic="" or about="" then
Errmsg=Errmsg+"<li>您没有填写完整,信息没有发布,请返回重新填写!"
exit sub
end if
''''''''''开始写入数据
sql="select * from [Article_Joke] where topic='"&topic&"'"
rs.open sql,conn,1,3
if rs.bof or rs.eof then
rs.addnew
rs("uid")=uid
rs("sid")=sid
rs("topic")=topic
rs("author")=author
rs("about")=about
rs("Hits")=0
rs("ETop")=0
rs("Chk")=2
IF AdText<>"" OR AdURL<>"" THEN
if AdText="" then AdText=AdURL
rs("Ad")=AdText&"|"&AdURL
Response.cookies("ceo")("AdText")=AdText
Response.cookies("ceo")("AdURL")=AdURL
END IF
rs("idate")=Date()
rs.update
else
Errmsg=Errmsg+"<li>这篇文章(<a href=/User/Show/joke.asp?ID="&RS("ID")&" target=_blank>点击这里查看</a>)在数据库里已经存在,请不要重复提交,仍然非常感谢您的参与!"
exit sub
rs.close
Response.End()
end if
rs.close
CloseDb%>
非常奇怪的一件事情,就是我自己添加一条信息,提示已经存在,不要再添加了,然后点击查看发现那条就是我添加的,说明:第一次,加入数据了,然后又调用了这段代码了。不然总不会If 和Then后面的语句都执行吧?
各位是否能帮忙找找到底哪里错了,我绝望了。
#7
if rs.eof and rs.bof then
......
......
#8
if rs.eof and rs.bof then
if rs.bof or rs.eof then
if rs.eof then
这些到底什么区别啊,糊涂了。
if rs.bof or rs.eof then
if rs.eof then
这些到底什么区别啊,糊涂了。
#9
If not rs.eof Then
Errmsg=Errmsg+"您的这个网站已经在数据库中存在,不必再次提交!" '这执行了
EXIT SUB
else ,这就不可能执行了
''''''''''开始写入数据
rs.addnew
rs("uid")=uid
rs("idate")=Date()
rs.update
ID=rs("ID")
end if
Errmsg=Errmsg+"您的这个网站已经在数据库中存在,不必再次提交!" '这执行了
EXIT SUB
else ,这就不可能执行了
''''''''''开始写入数据
rs.addnew
rs("uid")=uid
rs("idate")=Date()
rs.update
ID=rs("ID")
end if
#10
如果没有数据呢就用if rs.eof and rs.bof判断
rs.eof 和rs.bof分别表示数据的最后一天的下一条和第一条的上一条记录
是不是很晕,但我只能这么给你解释
rs.eof 和rs.bof分别表示数据的最后一天的下一条和第一条的上一条记录
是不是很晕,但我只能这么给你解释
#11
这个我知道啊,那我表里已经有其他数据存在,只是查找有没有和这条数据相同的,这样的话没有用什么表示?if rs.eof and rs.bof吗?
还有我上面的代码为什么if和then后面的都执行了?
还有我上面的代码为什么if和then后面的都执行了?
#12
用sql写吧!rs.eof就是把所有记录找一次都没有找到
#13
对啊,比如查找name="aaa"
rs.open "select * from table where name='aaa'"
if rs.eof and rs.bof then
response.write "no data!"
else
response.write name
end if
rs.open "select * from table where name='aaa'"
if rs.eof and rs.bof then
response.write "no data!"
else
response.write name
end if
#14
rs.open "select * from table where name='aaa'"
if rs.eof and rs.bof then
response.write "no data!"
else
response.write name
end if
我的就是这么写的啊。
但真的会发生——写入数据,然后告诉我该数据已经存在,不要再提交了,后来我专门加了句代码看已经存在的是那条记录,结果发现就是我刚刚加的那条,狂晕。
我想是重复执行了。但也找不到哪里重复了。代码都在上面贴出来了。
http://net.auak.com/User/Net/site_new.asp
大家到这个网站登陆页面看看,或许就会遇到这种情况,有时候有没有的。
if rs.eof and rs.bof then
response.write "no data!"
else
response.write name
end if
我的就是这么写的啊。
但真的会发生——写入数据,然后告诉我该数据已经存在,不要再提交了,后来我专门加了句代码看已经存在的是那条记录,结果发现就是我刚刚加的那条,狂晕。
我想是重复执行了。但也找不到哪里重复了。代码都在上面贴出来了。
http://net.auak.com/User/Net/site_new.asp
大家到这个网站登陆页面看看,或许就会遇到这种情况,有时候有没有的。
#15
up
#16
这段是我在用的
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open "select * from musiclist where title='"&ad_title&"' and url='"&Ad_url&"'",Conn,1,3
If Rs.Eof Then
Rs.Addnew
Rs("title")=Ad_title
Rs("url")=Ad_url
Rs("class")=Ad_class
Rs("type")=Ad_type
Rs("lyric")=Ad_lyric
Rs.Update
%>
<script>alert('添加成功,返回请刷新页面!');history.back();</script>
<%else%>
<script>alert('此歌曲已存在!');history.back();</script>
<%
End If
Rs.Close
set rs = nothing%>
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open "select * from musiclist where title='"&ad_title&"' and url='"&Ad_url&"'",Conn,1,3
If Rs.Eof Then
Rs.Addnew
Rs("title")=Ad_title
Rs("url")=Ad_url
Rs("class")=Ad_class
Rs("type")=Ad_type
Rs("lyric")=Ad_lyric
Rs.Update
%>
<script>alert('添加成功,返回请刷新页面!');history.back();</script>
<%else%>
<script>alert('此歌曲已存在!');history.back();</script>
<%
End If
Rs.Close
set rs = nothing%>
#17
我出现的情况是,写入数据较少的时候,可能会重复写入2次,但信息量较大的时候就不大会写入2次,
如果判断是否有重复的化酒会提示已经存在了,但这条记录其实就是刚刚提交的数据,就是2次里的第一次。
比如这么一个过程:
1-获取表单内容
2-写入数据
3-提示成功信息
1操作几次不知道,2就是上面我说的情况,3在没有判断的情况下是提示成功信息一次,否则会提示已经存在。
奇怪,奇怪
如果判断是否有重复的化酒会提示已经存在了,但这条记录其实就是刚刚提交的数据,就是2次里的第一次。
比如这么一个过程:
1-获取表单内容
2-写入数据
3-提示成功信息
1操作几次不知道,2就是上面我说的情况,3在没有判断的情况下是提示成功信息一次,否则会提示已经存在。
奇怪,奇怪
#18
代码看不出有什么问题
但你的问题存在,说明肯定有问题
把你的SQL语句response.write 看看,是不是你所要的
看看库里的记录跟查询的条件是不是完全相同
但你的问题存在,说明肯定有问题
把你的SQL语句response.write 看看,是不是你所要的
看看库里的记录跟查询的条件是不是完全相同
#19
if rs.eof then
'写记录
else
'提示
end if
这样的结构不会错的,你提示最好放到后面,或者加上response.end不然提示可能会出错误
'写记录
else
'提示
end if
这样的结构不会错的,你提示最好放到后面,或者加上response.end不然提示可能会出错误
#20
不是代码的问题,是你的浏览器的问题,
我都碰到无数次了,明明有问题的页面,
第一次刷新是500错误,第二次刷新又没错误了,
但是新开一个浏览器再第一次打开那页面又是500错误。
你的可能也是一样的错误,刷新时,掉出了以前的缓冲页面。
我都碰到无数次了,明明有问题的页面,
第一次刷新是500错误,第二次刷新又没错误了,
但是新开一个浏览器再第一次打开那页面又是500错误。
你的可能也是一样的错误,刷新时,掉出了以前的缓冲页面。
#21
可能是你的代码里面别处有问题,被浏览器诬赖到这段代码了 :p
#22
不是啊,我一直用myie的,现在用ie还是这样啊。
我把代码全部整理出来了,大家帮忙看看啊。
http://www.zugou.com/a.rar
添加那个页面的所有相关页面都在里面了,就4个页面,不是很大,派托各位大哥帮忙看看啊。
我把代码全部整理出来了,大家帮忙看看啊。
http://www.zugou.com/a.rar
添加那个页面的所有相关页面都在里面了,就4个页面,不是很大,派托各位大哥帮忙看看啊。
#23
if rs.eof and rs.bof then
#24
代码如下,各位帮忙看看啊,要钱也可以的,急啊
http://club.zugou.com/ShowPost.asp?id=14
http://club.zugou.com/ShowPost.asp?id=14
#25
if rst.eof or rst.bof then
'写入数据
else
'您的这个网站已经在数据库中存在,不必再次提交!"
end if
'写入数据
else
'您的这个网站已经在数据库中存在,不必再次提交!"
end if
#26
没看到你的代码里面有你提到的相关代码
就从这个现象看,肯定是你的这段代码被执行了2次。
就从这个现象看,肯定是你的这段代码被执行了2次。