问题描述
用vb.net语言创建的登录代码:ImportsSystem.DataImportsSystem.Data.SqlClientPartialClassDefault2InheritsSystem.Web.UI.PageProtectedSubButton1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimuserNameAsString=TextBox1.Text.Trim()DimuserPasswordAsString=TextBox2.Text.Trim()DimsqlconAsString=System.Configuration.ConfigurationManager.ConnectionStrings("bookdataConnectionString").ToString()DimsqlcomtextAsString="select*fromuserinfowhereuser='"+userName+"'andpws='"+userPassword+"'"DimconnAsSqlConnection=NewSqlConnection(sqlcon)Tryconn.Open()DimsqlcomAsSqlCommand=NewSqlCommand(sqlcomtext,conn)Ifsqlcom.ExecuteScalar()<>NothingThenSession.Add("login_name",userName)conn.Close()Response.Redirect("liuyan.aspx")ElseResponse.Write("<script>alert('登录失败!')</script>")EndIfIfconn.State=ConnectionState.OpenThenconn.Close()EndIfCatchexAsExceptionEndTryEndSubProtectedSubButton2_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesButton2.ClickTextBox1.Text=""TextBox2.Text=""EndSubEndClass
解决方案
解决方案二:
先看能连接成功不,再看名称和密码正确吧,在登录按钮上下个断点,单步仔细比对
解决方案三:
DimsqlcomtextAsString="select*fromuserinfowhereuser='"+userName+"'andpws='"+userPassword+"'"
你写错了,因为你在数据库表设计的时候写的是[user],所以要如下写:DimsqlcomtextAsString="select*fromuserinfowhere[user]='"+userName+"'andpws='"+userPassword+"'"
解决方案四:
user需要加上方括号。and前面缺一个空格。除此之外,你别的代码也要自己仔细检查下。
解决方案五:
用户登陆过程//用户和密码输入<asp:TextBoxID="TxtName"runat="server"Height="20px"Width="148px">mr</asp:TextBox<asp:TextBoxID="TxtPwd"runat="server"Height="19px"Width="148px"TextMode="Password">mrsoft</asp:TextBox>//登陆处理过程Memobwlep=newMemobwl();protectedvoidPage_Load(objectsender,EventArgse){if(Session["UserName"]!=null&&Session["UserPwd"]!=null){Session["UserName"]=null;Session["UserPwd"]=null;}}protectedvoidImgBtnLogin_Click(objectsender,ImageClickEventArgse){inti=this.checkLogin(this.TxtName.Text,this.TxtPwd.Text);if(i>0){Session["UserName"]=this.TxtName.Text;Session["UserPwd"]=this.TxtPwd.Text;Response.Redirect("Default.aspx");//登录成功后跳转到Default.aspx页面中}else//调用方法调用失败,弹出提示对话框{Response.Write("<scriptlanguage=javascript>alert('很遗憾,用户名称或密码错误!');location='javascript:history.go(-1)'</script>");}}//CodeGo.net///该方法用于判断管理员输入的文本框的内容是否和数据库中的数据一致//<paramname="loginName">传递用户名</param>//<paramname="loginPwd">传递用户密码</param>publicintcheckLogin(stringloginName,stringloginPwd){SqlConnectioncon=newSqlConnection(Memobwl.GetConStr());SqlCommandmyCommand=newSqlCommand("selectcount(*)fromtb_Loginwherename=@loginNameandPwd=@loginPwd",con);myCommand.Parameters.Add(newSqlParameter("@loginName",SqlDbType.VarChar,50));myCommand.Parameters["@loginName"].Value=loginName;myCommand.Parameters.Add(newSqlParameter("@loginPwd",SqlDbType.VarChar,50));myCommand.Parameters["@loginPwd"].Value=loginPwd;myCommand.Connection.Open();//打开数据库连接inti=(int)myCommand.ExecuteScalar();//执行SQL语句myCommand.Connection.Close();//关闭数据库连接returni;}#endregion
解决方案六:
你这个从数据库提示数据的时候要求用户名和密码都相等,所以你确定用户名存在,是不是密码错了?
解决方案七:
首先你要确定你数据库连接成功然后请短点你的sql语句然后拿出来放到数据库执行··执行成功了再说·
解决方案八:
sql语句要好好检查一下,像and前没有空格这种微错误要找出来,最好的方法是断点,然后截出SQL拿到查询器里过一遍,这样有什么错误都可以发现。