问题描述
- [ASP.NET]菜鸡求指导,我这个登录验证就是通不过注册信息倒是能写入数据库
-
这是我的部分代码片段//登录按钮触发的事件函数 protected void button1_Click(object sender, EventArgs e) { if(LoginData.fucLogin(UserName.Text, PassWord.Text)) { Response.Redirect("WebForm1.aspx"); } else { label3.Text = "用户名或密码错误,请重新输入"; } }
//这是校验登录密码函数写到类里面去了 public static bool fucLogin(string username, string password) { bool success = false; SqlConnection myConnection = new SqlConnection(conStr); myConnection.Open(); SqlCommand objCmd = new SqlCommand("select * from userinfo where UserName='" + username + "'",myConnection); try { SqlDataReader myReader = objCmd.ExecuteReader(); if (myReader.Read()) { if (myReader["PassWord"].ToString() == password) { success = true; } } } catch (SqlException ex) { success = false; } finally { if (myConnection.State == ConnectionState.Open) { myConnection.Close(); } } return success; }
这是数据库里面的数据
我能够成功注册用户然后把数据写入数据库,但是用新注册的用户名和密码就是登录不进去。
如果把if判断语句注释掉变成这样try { SqlDataReader myReader = objCmd.ExecuteReader(); if (myReader.Read()) { //if (myReader["PassWord"].ToString() == password) //{ success = true; //} } }
就能输入用户名pan 密码随便输入都能登录进去,我觉得那个if语句有问题但是又看不出哪里出错了。。。小菜鸡刚开始学asp.net之前没接触过c#和数据库。。。还请各位指点指点
解决方案
目测你的pan后面有很多空格
解决方案二:
应该和caozhy说的一样,数据库的值包含空格了,或者字段类型是char的,不足长度自动补充空格导致无法匹配
解决方案三:
username字段设置为nvarchar类型的
解决方案四:
一般得到值后,,先trim一下,,去掉前后空格,,在插入到数据库
解决方案五:
1,能不能插入数据到表,不能得话你先学如何插入,查询,更新,删除
2,如果有——》就用查询的数据和输入的用户名,密码做比对==正确登入、、错误的话打印出错信息
时间: 2024-10-20 21:56:22