问题描述
并不是系统报错,这个提示是我自己设置的。确定密码是正确的,vs用得2010,sql用的2008.附代码如下,请大神帮忙!新手求讲解,求轻喷。。。
解决方案
解决方案二:
前台的设计页面并没有什么配置代码,就是一个如下图所示的表格设计。
解决方案三:
看一下你的flag为什么是0,出现这个问题,你需要断点调试,看看sql语句是不是你预期希望得到的。
解决方案四:
我想是你把cmd.ExecuteNoQuery();执行了两次的问题。你直接intflag=cmd.ExecuteNoQuery();就行了,上面那句就不要了
解决方案五:
没太看懂你这2张图,所以不太好对代码说什么。。
解决方案六:
1、检查链接字符串是否正确2、检查生成的sql语句是否正确,拿到数据库中跑下3、检查判断的值或顺序是否正确。
解决方案七:
没明白,为什么要把com.ExecuteNonQuery执行两次,你执行之后去数据库里面看看数据没有更改掉,如果没有,看一下密码是什么,去一下空格什么的,文本框里面容易出现一些空格,导致跟数据库内容不匹配,把数据拿到数据库里面试一下,差补多就知道是为什么了
解决方案八:
这种方式要是开发实际的项目不安全的,我感觉是保存的http.current.....name可能重复了吧
解决方案九:
都没校验就执行sql了?那空的也能设进去咯?
解决方案十:
当看到拼接字符串就放弃看下去了为什么不用参数?
解决方案十一:
引用5楼qq875778812的回复:
1、检查链接字符串是否正确2、检查生成的sql语句是否正确,拿到数据库中跑下3、检查判断的值或顺序是否正确。
1和2都是对的。3应该怎么检查?本科生在校,没啥本事还请多多指教~~
解决方案十二:
引用3楼qq_23613747的回复:
我想是你把cmd.ExecuteNoQuery();执行了两次的问题。你直接intflag=cmd.ExecuteNoQuery();就行了,上面那句就不要了
还是报错。。
解决方案十三:
引用6楼u010248119的回复:
没明白,为什么要把com.ExecuteNonQuery执行两次,你执行之后去数据库里面看看数据没有更改掉,如果没有,看一下密码是什么,去一下空格什么的,文本框里面容易出现一些空格,导致跟数据库内容不匹配,把数据拿到数据库里面试一下,差补多就知道是为什么了
sql语句是正确的,已经跑过了。。
解决方案十四:
那现在flag的值是什么呢
解决方案十五:
引用13楼Voscxx的回复:
那现在flag的值是什么呢
怎么看flag的值?
解决方案:引用14楼trista_1212的回复:
Quote: 引用13楼Voscxx的回复:
那现在flag的值是什么呢怎么看flag的值?
你不好调试一下吗?打个断点,调试一下,很快就知道哪里出问题了啊。
解决方案:没验证就先执行sql?验证应该放在前面的吧不满足就return验证通过才执行sql还有com.ExecuteNonQuery执行两次
解决方案:有没有可能是where里面有多条(导致flag>1),你能确定UserName是唯一的么?不能的话建议使用ID
解决方案:肯定不正确你判断不正确最后else是密码相同输出密码不正确的提示!!!!!!
解决方案:建议楼主规范一下代码不要用ifelseifelse写验证这样容易出问题另外最好把验证写前面确定用户输入的正确后在执行修改密码的代码最后判断flag是否大于0而不是等于1至于你的问题你先检查一下你的数据库改过来没有你的问题太多了说实话很多地方都能出问题估计是你数据库有重复数据或者什么的至于数据底层什么的我估计你也不会写我也不多说你用trycatch包裹一下修改语句断点调试一下问题就出来了本来之前说了很多忘记没登录结果没了重新打了也懒得说多了的
解决方案:flag没有赋值,肯定不是1啊
解决方案:之前用ASP.NET写的项目一时之间没找到这个是用MVC写的反正道理是一样的<scripttype="text/javascript">//前台js验证$(function(){$("#U_Password").hide();$(".Update").click(function(){varPwd=$("#txtPwd").val();varRPwd=$("#txtRPwd").val();varAPwd=$("#txtAPwd").val();if(Pwd==""){msgbox.show("txtPwd","请输入原密码");returnfalse;}if(Pwd!=$("#U_Password").text()){msgbox.show("txtPwd","原密码输入错误");returnfalse;}elseif(RPwd==""){msgbox.show("txtRPwd","请输入新密码");returnfalse;}elseif(checkQuote(RPwd)){msgbox.show("txtRPwd","不能输入输入特殊字符");returnfalse;}elseif(APwd==""){msgbox.show("txtAPwd","请输入确认密码");returnfalse;}else{if(RPwd!=APwd){msgbox.show("txtAPwd","两次密码输入不一致,请重新输入");returnfalse;}else{$("form").submit();$.get("/Main/NewPassword",{pwd:Pwd,apwd:APwd},function(data){if(data=="1"){$("#txtPwd").val("");$("#txtRPwd").val("");$("#txtAPwd").val("");msgbox.show("txtPwd","原密码输入错误");}elseif(data=="3"){aler("修改失败");window.parent.$("#dlg").dialog("close");}else{alert("修改成功");window.parent.$("#dlg").dialog("close");window.parent.location="/Login/Index";}});}}});$("#txtRPwd").blur(function(){if(checkQuote($("#txtRPwd").val())){msgbox.show("txtRPwd","不能输入输入特殊字符");returnfalse;}})$("#txtAPwd").blur(function(){if($("#txtRPwd").val()!=$("#txtAPwd").val()){msgbox.show("txtAPwd","两次密码输入不一致,请重新输入");$("#txtAPwd").val("");returnfalse;}})$("#txtPwd").blur(function(){varPwd=$("#txtPwd").val();if(Pwd!=$("#U_Password").text()){msgbox.show("txtPwd","原密码输入错误");returnfalse;}})});/***检查输入的字符是否具有特殊字符*输入:str字符串*返回:true或flase;true表示包含特殊字符*主要用于注册信息的时候验证*/functioncheckQuote(str){varitems=newArray("~","`","!","#","$","%","^","&","*","{","}","[","]","(",")");items.push(":",";","'","|","\","<",">","?","/","<<",">>","||","//");items.push("admin","administrators","administrator","管理员","系统管理员");items.push("select","delete","update","insert","create","drop","alter","trancate");str=str.toLowerCase();for(vari=0;i<items.length;i++){if(str.indexOf(items[i])>=0){returntrue;}}returnfalse;}</script>@using(Html.BeginForm())//前台页面{<tablealign="center"id="tbe1"><tr><th>旧密码:</th><td><inputid="txtPwd"type="password"onblur="QueFocus();"/></td></tr><tr><th>新密码:</th><td><inputid="txtRPwd"type="password"/></td></tr><tr><th>确认密码:</th><td><inputid="txtAPwd"type="password"/></td></tr><tr><td></td><td><ahref="#"class="easyui-linkbuttonUpdate"iconcls="icon-edit">修改</a><labelid="U_Password">@User.U_Password</label></td></tr></table>}//后台控制器的方法publicActionResultNewPassword(stringpwd,stringApwd){Usersuse=Session["User"]asUsers;if(pwd!=use.U_Password){returnContent("1");}else{BLL.MenCardsBLLmcbll=newBLL.MenCardsBLL();boolresult=mcbll.UsersUpdate(use.U_ID,Apwd);if(result){returnContent("2");}else{returnContent("3");}}}兄弟看不看得懂就看你自己了我只能帮你到这里了
解决方案:flag设置下断点立马就出来了