注册 登录
编程论坛 ASP技术论坛

修改成功,但事实并没有成功

魏兴耀 发布于 2010-08-23 16:22, 1028 次点击
情况是这样的:现在下面有个表单和接受表单传值的代码段,当点击“修改”按钮时,要对游客的权限进行修改,但现在修改不了,选好权限后,点击修改,旁边会提示修改成功,但其实选中的按钮并没有改变,而且数据库里也没有改变,大家看看
程序代码:
'修改游客查看联系信息设置-------------------------------------------

 dim gope,issee


 gope=Replace_Text(request.Form("gope"))

 issee=Replace_Text(request.Form("issee"))

 iswrite=Replace_Text(request.Form("iswrite"))

    if gope[color=#0000FF]<>
"" and issee<>"" and iswrite<>"" then
        if issee="1" then
            conn.execute "update [Websen_worldec_config] set issee=1"
        else
            conn.execute "update [Websen_worldec_config] set issee=0"
        end if

 
        if iswrite="1" then
            conn.execute "update [Websen_worldec_config] set iswrite=1"
        else
            conn.execute "update [Websen_worldec_config] set iswrite=0"
        end if
   
        if err then
            msg="修改成功!"
        else
            msg="修改失败!"
        end if

    end if

 '--------------------------------------------------------
%>
<body>
    <form name="peoplesee" method="post" action="grademanage.asp">
    <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center" class="tableBorder">
        <tr>
            <th width="100%" height="25" class="tableHeaderText">
                会员等级信息管理</th>
        </tr>
        <tr>
            <td>
                <font color="#666666">温馨提示:①.<font color="red">等级ID</font>是会员直属某类等级的直接<font color="red">关联值</font>
                    关系整个系统的所有会员的一切信息,请不要随意更改,否则将造成严重后果!
                    <br />
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ②.等级ID值不能有重复,如有,后果自负! </font>
            </td>
        </tr>
        <tr>
            <td height="1" bgcolor="#CCCCCC">
            </td>
        </tr>
        <tr>
            <td height="20">
                <%
   
set rspe=server.CreateObject("adodb.recordset")
    sqlpe
="select top 1 issee,iswrite from Websen_worldec_config"
    rspe.open sqlpe,conn,
1,3
   
if not rspe.eof then
               
%>
                <font color="red"></font> <font color="#0099FF">游客:①是否可以查看联系信息:</font>
                <input type="radio" name="issee" value="1" <% if   rspe("issee")=1 then response.Write("checked") end if %> />允许&nbsp;
                <input type="radio" name="issee" value="0" <% if   rspe("issee")=0 then response.Write("checked") end if %> />禁止&nbsp;
                &nbsp; <font color="#0099FF">②是否可以在会员模板网站留言:</font>
                <input type="radio" name="iswrite" value="1" <% if rspe("iswrite")=1 then response.Write("checked") end if %> />允许&nbsp;
                <input type="radio" name="iswrite" value="0" <% if rspe("iswrite")=0 then response.Write("checked") end if %> />禁止&nbsp;
                <input type="submit" name="gope" value="修改" />&nbsp;<font color="red"><%=msg%></font>
            </td>
        </tr>
        <%
    rspe.close
   
end if
        
%>
    </table>
    </form>

下面这个是函数:
程序代码:
function Replace_Text(fString)
if isnull(fString) then
Replace_Text=""
exit function
else
fString=trim(fString)
fString=replace(fString,">","")
fString=replace(fString,"<","")
fString=replace(fString,"'","")
fString=replace(fString,";","")
fString=replace(fString,"--","")
fString=server.htmlencode(fString)
Replace_Text=fString
end if   
end function
这个是图:
只有本站会员才能查看附件,请 登录

[/color]
13 回复
#2
cnfarer2010-08-23 17:16
1.错误应该在语句执行之后立即检查
2.你的Update语句没有Where子句,结果是。。。你应该明白(除非永远只有一条记录或全部替换)!
#3
魏兴耀2010-08-23 18:03
没有报错,还有,游客可以全部替换,统一
#4
魏兴耀2010-08-23 18:05
我现在找不到哪里出错,写的函数也没问题啊,它怎么就不能往数据库里写入数据呢?
#5
gupiao1752010-08-23 18:24
gope=Replace_Text(request.Form("gope"))
issee=Replace_Text(request.Form("issee"))
iswrite=Replace_Text(request.Form("iswrite"))
看看gope,issee,iswrit这3个变量到底有无取得值,如果有,取到的又是什么类型的值呢?
而在这里:
  
程序代码:
if issee="1" then
            conn.execute "update [Websen_worldec_config] set issee=1"
        else
            conn.execute "update [Websen_worldec_config] set issee=0"
        end if

        if iswrite="1" then
            conn.execute "update [Websen_worldec_config] set iswrite=1"
        else
            conn.execute "update [Websen_worldec_config] set iswrite=0"
        end if
   
        if err then
            msg="修改成功!"
        else
            msg="修改失败!"
        end if

    end if

很核心的部分就在这里了。如果前取值正确,就主要考虑这里的问题。update怎么没有where呢?难道你准备更新所有数据?这样在实际应用里不太符合要求吧!
#6
gupiao1752010-08-23 18:27
还有一点,如果根本没有报错,那我敢肯定你一定加了on error resume next.否则一般ASP应用,你多1个或少1个符号都能让你程序中断,并立刻报错,哪怕你用的是netbox这种第三方的平台。也一样会报错。
#7
魏兴耀2010-08-23 19:24
我没有加on error resume next,这个东西我还是知道的,但就是不报错,我现在都怀疑系统是不是有问题了
#8
魏兴耀2010-08-23 19:24
这跟系统是否有关呢?难道要换系统???
#9
hams2010-08-24 09:00
        if err then
            msg="修改成功!"
        else
            msg="修改失败!"
        end if


err有值么?没看到哪赋值。
#10
魏兴耀2010-08-24 12:55
回复 9楼 hams
这个在另一个地方,没什么相干的,关键是点击“修改”后,原有的状态没有反应
#11
魏兴耀2010-08-25 10:27
问题依然未解决,纠结
#12
hams2010-08-25 15:12
以下是引用魏兴耀在2010-8-24 12:55:43的发言:

这个在另一个地方,没什么相干的,关键是点击“修改”后,原有的状态没有反应
我认为很有相关,按你说的,系统提示修改成功,但实际数据库没有变化,那么,就要先确定,这个判断是正确的。

系统是不是对数据库进行操作,本身是没有直接反应的,我们为了人机友好些,就做了些反馈代码,但如果这些代码不起作用,那么你就会成为一个瞎子,凭着那些错误的反馈信息去找原因,能找到么?
#13
sunny222010-09-15 15:29
关键就是err的值,
#14
yms1232010-09-15 15:50
gope[color=#0000FF]
这个变量是什么?
1