数据库更新成功 在页面上却显示更新失败

来源:互联网 发布:网络电视怎样更新 编辑:程序博客网 时间:2024/06/07 09:59

用vs2005做的简单系统 有一个修改密码的页面 修改密码点提交时显示失败 在数据库里却已经改过来了 是怎么回事呀

估计是你在数据库操作完之后,在代码获取数据处理结果时候的逻辑判断错了。

你数据库内容都更新了。。显示更新失败,那估计是你逻辑判断有误了、、

数据库操作时候的逻辑判断有误,仔细检查代码看看,关键是if条件判断

检查你的代码,说不定你把成功修改后的提示写成了修改失败了,如果实在检查不出来,就贴出你的代码吧,有代码有真相

数据库改过来了,说明数据库操作是对的
显示失败,说明判断的逻辑可能有错误或遗漏

把判断的逻辑部分贴出来看看

应该是逻辑判断有误,把这部分代码贴出来,方便大家给你找错呀!

可能是session的原因,如果你没有及时提交按钮,
session超时,session对象被清空,if判断失效。
还有commandText应该用parameter构造,以防
sql inject危险。

Response.Write("<script>alert('原始密码不正确!');location.href='studMain.aspx'</script>");
没有必要在数据访问层里进行判断吧,在表示层就可以了呀,或者是用验证控件进行处理。
还有就是可以是你的逻辑错误,你可以设置断点进行追踪。

cmd.ExecuteNonQuery();返回受影响的行数
cmd.ExecuteScalar();返回结果集第一行第一列
你第一列ID不会是0吧?还有哪个.Tostring()一下

第一:你的命名该注意一下了

第二:数据处理,业务逻辑,前台操作,分层比较好.

第三:你是根据用户名,修改密码的么?

这一句错了Convert.ToInt32(cmd.ExecuteScalar()) > 0
应该用Convert.ToInt32(cmd.ExecuteNonQuery()) > 0

两者区别:
ExecuteNonQuery 已重写。 对连接执行 Transact-SQL 语句并返回受影响的行数。 
ExecuteScalar 已重写。 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。  

另外你的程序写的时候,最好符合缩进规则,

另外,你程序中最好不要直接写Commad命令字符串,不安全,小心注入攻击。
可以考虑在数据库端用存储过程,一个是灵活些,便于修改,二个安全性好些

来源:英超直播