一个极其让我费解的问题!各位都来看看...不过我只有10分
id = cint(request("id"))
set rs = Server.CreateObject("ADODB.Recordset")
sql="select top 1 * from [message] where id="&id
rs.open sql,conn,1,3
if rs("public")=true then rs("public")=false
if rs("public")=false then rs("public")=true
rs.update
rs.close
set rs=nothing
我想实现rs("public")=true的时候把他该成false,如果是false改成True
结果在rs("public")为false数据苦中能成功写入true
但是rs("public")为true时却改为false不成功,也没有报错,什么原因呢?!
问题点数:10、回复次数:4Top
1 楼infatboy(阿C)回复于 2005-09-11 16:02:53 得分 5
if rs("public")=true then rs("public")=false
if rs("public")=false then rs("public")=true
你这两句话这样放着,第一个IF判断public = true是真,先是改成false,然后下面的IF判断public = flase是真,又改回到true!哈哈。。
所以是FALSE时,你能实现你的要求,是TRUE时,结果还是TRUE!
你可以用select case 实现这个功能!
id = cint(request("id"))
set rs = Server.CreateObject("ADODB.Recordset")
sql="select top 1 * from [message] where id="&id
rs.open sql,conn,1,3
select case rs("public")
case true
rs("public")=false
case false
rs("public")=true
end select
rs.update
rs.close
set rs=nothingTop
2 楼onkey1999(忆江南信息网:http://www.donfor.com|2006冲刺NET)回复于 2005-09-11 16:10:41 得分 2
楼上正解,呵 ̄ ̄!很久没来了,顶一下Top
3 楼etou(迷途小青蛙,解决就给分)回复于 2005-09-11 16:11:01 得分 2
你其中的true和FALSE是否为字段?!
这句if rs("public")=true then rs("public")=false,在SQL里的意思是将所找到的记录变为布尔值:false.即记录为空!但是数据库里已存在该记录,你用UPDATE当然是不能将本记录变空!
你这样试下:
if rs("public")="true" then
rs("public")="false"
else
rs("public")="true"
end if
Top
4 楼jackywoo(jackywoo)回复于 2005-09-11 16:12:13 得分 1
呵呵Top




