p_160717
p_160717
2016-02-17 15:59
采纳率: 25%
浏览 1.5k

[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#和数据库。。。还请各位指点指点

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • caozhy
    已采纳

    目测你的pan后面有很多空格

    点赞 评论
  • zsj22307
    zsj22307 2016-02-17 19:11

    1,能不能插入数据到表,不能得话你先学如何插入,查询,更新,删除
    2,如果有——》就用查询的数据和输入的用户名,密码做比对==正确登入、、错误的话打印出错信息

    点赞 评论
  • showbo

    应该和caozhy说的一样,数据库的值包含空格了,或者字段类型是char的,不足长度自动补充空格导致无法匹配

    点赞 评论
  • enpterexpress
    把分全给哥 2016-02-18 01:18

    username字段设置为nvarchar类型的

    点赞 评论
  • Royal_lr
    Royal_lr 2016-02-18 01:40

    一般得到值后,,先trim一下,,去掉前后空格,,在插入到数据库

    点赞 评论

相关推荐