很简单的问题,帮忙瞧瞧!回答的满意在加分!这是第二贴了,如果回答好的,分数都给他

yangerpeng 2002-10-14 11:02:57
下面是我最新改的程序,现在的问题是无论我是否确认覆盖,都在数据库中新添加一条记录,但是我在确认覆盖时执行的是UPDATE啊,这是为什么啊?
set rss=conn.execute("select count(*) as Recount from bbsb_bbxx where d_dwbm='"&dwbm&"' and d_sbwjm='"&varFileName&"'")
j=rss("Recount")
if j=0 then
rec.Open "SELECT * FROM bbsb_bbxx where d_id is null",conn,1,3
rec.addnew
rec("d_sbwjm")=varFileName
rec("d_sbwj").appendchunk mydata
rec("d_sbqj_nf")=nf
rec("d_sbqj_yf")=jd
rec("d_dwmc")=dwmc
rec("d_dwbm")=dwbm
rec("d_sslj")=sslj
rec("d_sbsj_rq")=sbsj_rq
rec("d_id")=newid
rec("d_sbsj_sj")=sbsj_sj
rec.update
rec.close
else
%>
<script language="javascript"> //判断是否确认覆盖
var agree = confirm("确认是否覆盖?");
if (agree){

<%
set rs2=conn.execute("update bbsb_bbxx set d_sbwj='"&mydata&"',d_sbsj_sj='"&sbsj_sj&"' where d_dwbm='"&dwbm&"' and d_sbwjm='"&varFileName&"'")
%>

alert("已覆盖")
}
else{

<%
rec.Open "SELECT * FROM bbsb_bbxx where d_id is null",conn,1,3
rec.addnew
rec("d_sbwjm")=varFileName
rec("d_sbwj").appendchunk mydata
rec("d_sbqj_nf")=nf
rec("d_sbqj_yf")=jd
rec("d_dwmc")=dwmc
rec("d_dwbm")=dwbm
rec("d_sslj")=sslj
rec("d_sbsj_rq")=sbsj_rq
rec("d_id")=newid
rec("d_sbsj_sj")=sbsj_sj
rec.update
rec.close
%>

alert("未覆盖")
}
</script>

<%
end if
set rec=nothing
set conn=nothing
%>
...全文
21 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
无爱大叔 2002-10-14
  • 打赏
  • 举报
回复
<script language="Vbscript">
ret=msgbox("如果满意,别忘了加分哟!",257)
if ret=1 then
alert "同意加分"
else
alert "考虑一下"
end if
</script>
////////////////////
<script language="javascript">
中间只能是脚本
</script>
/////////////////////////
<script language="javascript"> //判断是否确认覆盖
var agree = confirm("确认是否覆盖?");
if (agree){
</script>
<%
set rs2=conn.execute("update bbsb_bbxx set d_sbwj='"&mydata&"',d_sbsj_sj='"&sbsj_sj&"' where d_dwbm='"&dwbm&"' and d_sbwjm='"&varFileName&"'")
%>
<script>
alert("已覆盖")
}
else{
</script>
<%
...
%>


yangerpeng 2002-10-14
  • 打赏
  • 举报
回复
能否给的清楚一点啊,谢谢了,把什么东西分成两页啊,而且没有别的解决方法了吗?
如果我把javascript都换成vbscript的,可以吗,只是我不知道那种带确认,取消按钮的弹出框怎么写,又怎么判断值,谢谢了!
yannan_liv 2002-10-14
  • 打赏
  • 举报
回复
不好意思,上一贴有点问题,内容不必加,提示alert("已覆盖")等适当变通处理一下就好了
yannan_liv 2002-10-14
  • 打赏
  • 举报
回复
bb.asp后面还要加上:
<script language="javascript">
location.href="aa.asp"
</script>
yannan_liv 2002-10-14
  • 打赏
  • 举报
回复
把确认是否覆盖的信息(agree)传递入服务器端(分两个页来处理),然后if (agree) 执行update else 执行addnew.
如:页1-aa.asp
<script language="javascript"> //判断是否确认覆盖
randomize
var agree = confirm("确认是否覆盖?");
location.href="bb.asp?agree=" & agree & "&XXX=" & rnd();
if (agree){
alert("已覆盖")
}
else{
alert("未覆盖")
}
</script>

页2-bb.asp
<%
set rss=conn.execute("select count(*) as Recount from bbsb_bbxx where d_dwbm='"&dwbm&"' and d_sbwjm='"&varFileName&"'")
j=rss("Recount")
if j=0 then
rec.Open "SELECT * FROM bbsb_bbxx where d_id is null",conn,1,3
rec.addnew
rec("d_sbwjm")=varFileName
rec("d_sbwj").appendchunk mydata
rec("d_sbqj_nf")=nf
rec("d_sbqj_yf")=jd
rec("d_dwmc")=dwmc
rec("d_dwbm")=dwbm
rec("d_sslj")=sslj
rec("d_sbsj_rq")=sbsj_rq
rec("d_id")=newid
rec("d_sbsj_sj")=sbsj_sj
rec.update
rec.close
else
if (resquest.querystring("agree")+0) then
set rs2=conn.execute("update bbsb_bbxx set d_sbwj='"&mydata&"',d_sbsj_sj='"&sbsj_sj&"' where d_dwbm='"&dwbm&"' and d_sbwjm='"&varFileName&"'")
else
rec.Open "SELECT * FROM bbsb_bbxx where d_id is null",conn,1,3
rec.addnew
rec("d_sbwjm")=varFileName
rec("d_sbwj").appendchunk mydata
rec("d_sbqj_nf")=nf
rec("d_sbqj_yf")=jd
rec("d_dwmc")=dwmc
rec("d_dwbm")=dwbm
rec("d_sslj")=sslj
rec("d_sbsj_rq")=sbsj_rq
rec("d_id")=newid
rec("d_sbsj_sj")=sbsj_sj
rec.update
rec.close
end if
end if
set rec=nothing
set conn=nothing
%>
yangerpeng 2002-10-14
  • 打赏
  • 举报
回复
现在我发现了问题在哪里,是在条件语句上。也就是如果我按了确定覆盖的话,先执行了更新的语句,但是它并没有跳出,而是继续执行插入语句,所以每次都插入两条,但是我不知怎么跳出语句,帮我解决一下,谢谢了!
ruihuahan 2002-10-14
  • 打赏
  • 举报
回复
response.write cstr(j)
看一下j的值是不是始终为0.
yannan_liv 2002-10-14
  • 打赏
  • 举报
回复
代码写得确实很乱,建议你不要这么大规模地将客户端和服务端代码夹着写,很容易出错的,比如你的IF文句本来是客户端的,可是END IF却写在了服务器端;对数据库的操作本来是一脉相承的,可是你却硬生生地把它们分割在了客户端代码的两个条件分支中,太不可能正确执行啦……改改代码吧!
yangerpeng 2002-10-14
  • 打赏
  • 举报
回复
那么应该怎么改啊,我的是服务器端的
BrightEye 2002-10-14
  • 打赏
  • 举报
回复
呵呵,没有提示什么错误吗?
possible_Y 2002-10-14
  • 打赏
  • 举报
回复
你的代码根本是错的
你没有弄清客户端和服务器端
cshadow 2002-10-14
  • 打赏
  • 举报
回复
你少了一个end if
yangerpeng 2002-10-14
  • 打赏
  • 举报
回复
为什么没有人回答啊
julyclyde 2002-10-14
  • 打赏
  • 举报
回复
算算
干脆去学ASP.NEt算了
wpmsoft 2002-10-14
  • 打赏
  • 举报
回复
兄弟,我再给您解释一下客户端与服务器端,你应该会明白你的代码为什么错啦!

ASP的程序,首先由服务器端对<%%>中的代码进行解释执行,最后将执行结果连同ASP中的其它非服务器端代码(包括HTML脚本与客户端脚本)一并送回客户端。

其次,客户端负责对客户端脚本(就是你代码中的<script>部分)进行解释执行。

OK,明白了吗?

为了达到你的要求,将你的代码做一个简单的修改吧,也就是一分为二,用两个ASP文件来实现:第一个文件就用Alert吧,可以让用户去选择,然后将此选择结果做为参数传递到第二个文件;在第二个文件中,主要用服务器端代码,根据这个参数的不同,调用不同的代码段,实现数据库的操作,并用 Response.write向客户端反馈信息。

该明白了吧。。。。。

太累了。

再说一点,写ASP文件时,一定要注意代码的可读性与可维护性。文件大一些没有关系,关键是要结构好一些,否则时间一长,你再读时,它就成了一本天书。
zhangjiwei888 2002-10-14
  • 打赏
  • 举报
回复

rec.Open "SELECT * FROM bbsb_bbxx where d_id is null",conn,1,3
‘rec.addnew ????不应该有这句。。
rec("d_sbwjm")=varFileName
rec("d_sbwj").appendchunk mydata
rec("d_sbqj_nf")=nf
rec("d_sbqj_yf")=jd
rec("d_dwmc")=dwmc
rec("d_dwbm")=dwbm
rec("d_sslj")=sslj
rec("d_sbsj_rq")=sbsj_rq
rec("d_id")=newid
rec("d_sbsj_sj")=sbsj_sj
rec.update
rec.close
yangerpeng 2002-10-14
  • 打赏
  • 举报
回复
我不知道那种带确认,取消按钮的弹出框怎么写,又怎么判断值,谢谢了!
yagas 2002-10-14
  • 打赏
  • 举报
回复
rec.Open "SELECT * FROM bbsb_bbxx where d_id is null",conn,1,3

错在这儿了  不能为 null

28,390

社区成员

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

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