2 p 160717 p_160717 于 2016.02.17 23:59 提问

[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
caozhy   Ds   Rxr 2016.02.18 05:18
已采纳

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

showbo
showbo   Ds   Rxr 2016.02.18 08:59

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

enpterexpress
enpterexpress   Rxr 2016.02.18 09:18

username字段设置为nvarchar类型的

Royal_lr
Royal_lr   Ds   Rxr 2016.02.18 09:40

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

zsj22307
zsj22307   2016.02.18 03:11

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
asp.net连接access数据库的登录页面
1.创建access数据库 login.mdb  新建表user  2.  login.aspx 页面 代码:     欢迎登陆                                     style="height: 148px; width: 382px">
在ASP.NET中将用户注册信息插入数据库
public int CreateUser(User user) { string SQL_QUERY=" Select * From [User] Where LoginName='"+user.LoginName+"'"; using(OleDbConnection conn = GetOleDbConnection()) { OleDbCommand cmd = new OleDbCommand(SQL_QUERY, conn ); conn.Open(); using(IDataReader dr=cmd.ExecuteReader()) { if(dr.Read()) { return -1; } } SQL_QUERY="INSERT INTO [User] ([LoginName],[Password],[GradeId],[Email],[Sex],[Birthday],[Country],[Province],[City],[TrueName],[Address],[ZipCode],[Phone],[OnlineTool],[Account],[RegisterTime],[LastLoginTime],[LastLoginIP],[LoginCount],[Question],[Answer],[State])Values('"+user.LoginName+"','"+user.Password+"',"+user.GradeId+",'"+user.Email+"',"+user.Sex+",'"+user.Birthday+"','"+user.Country+"','"+user.Province+"','"+user.City+"','"+user.TrueName+"','"+user.Address+"','"+user.ZipCode+"','"+user.Phone+"','"+user.OnlineTool+"',"+user.Account+",'"+user.RegisterTime+"','"+user.LastLoginTime+"','"+user.LastLoginIP+"',"+user.LoginCount+",'"+user.Question+"','"+user.Answer+"',"+user.State+")"; cmd.CommandText = SQL_QUERY; if(cmd.ExecuteNonQuery()>0) { cmd.CommandText = "Select @@Identity"; return (int)cmd.ExecuteScalar(); //返回新增ID } else { return 0;//返回状态
年薪30万才能算码农,你顶多就是码畜...
微信公众号:javafirst1. 计算机科学之父:图灵、香农、冯诺依曼等人。2. 计算机科学各领域之父:AT&T 贝尔实验室里那几个开创了计算机世界的研究员,Thompson、里奇、伯纳斯李、Bjarne Stroustrup 等人。3. 硅谷之父:仙童公司八叛逆天才 ( 罗伯特 · 诺伊斯、摩尔等人 ) 、Bosack 夫妇、盖茨、保罗 · 艾伦、沃茨尼亚克等人。4. 硅谷英豪:卡马克...
趣事记录——特殊字符\u0014
今天写代码又没注意字符串长度,结果越界了,显示了一个特殊字符复制粘贴搜索,结果百度自动弹回首页放到记事本样子还变了放到sublime又变了网上找了半天,转成Unicode是\0014这不就是第一个图吗?搞了半天,结果别人其实已经把结果写在了脸上_(:3 」∠ )_真名:Device Control Four U+0014相关链接(详细信息):http://www.fileformat.info/i...
asp.net登录注册验证(jquery异步调用)
1、登录注册在同一个页面上,不能再一个form表单中提交。(可以尝试些一个form,genb)
ASP.NET 登陆验证+数据库访问
该源代码是完整的登陆+数据库连接+数据增删查改操作
asp用户注册登录,检测用户名,连接mysql,最简单的asp+mysql
最简单的asp代码,适合初学者参考。其中涉及到了用户连接数据库登录,检验用户名密码,检测用户名是否可用。 如果对其中的部分代码不理解,可以发 E-mail:wangwei171@126.com给我。我将为你解答。
ASP.NET 个人信息注册页面,并跳转显示
#题目 新建一个MVC项目,利用HTML、CSS、JS、jQuery、Ajax、jQuery UI等技术设计一个个人信息注册页面。当点击“提交”按钮时,跳转到新的页面显示录入信息。 **基本要求:** 用户名为6-10个小写字母(小写使用正则式验证,且用户名不能为“wustzz” –用Ajax技术来检测);密码为6位数字,确认密码不一致时有提示;籍贯使用级联(jquery实现);Email必须符合Email格式;手机是11位(假设规定以1569开头);出生年月使用jQuery UI日历组件设置;图片要传递到新的页面显示。
ASP.NET MVC4 用户登录验证
文件结构: 主要核心代码: View/AdminLogin代码: <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <!DOCTYPE html> <html> <head runat="server"> <meta name="viewport" content="width=device-width" /> <title>AdminLogin</title> <link href="..
《鸟哥的Linux私房菜 基础学习篇(第三版)》习题与解析(四)
第四部分 Linux使用者管理 第14章 Linux账号管理与ACL权限设置 ·root的UID与GID是多少?基于这个理由,我要让test这个账号具有root的权限,应该怎么做? 答:root的UID与GID都是0,UID只有0和非0两种,0代表系统管理员。所以要让test这个账号具有root的权限,只要把test的UID和GID都改为0即可。 ·假设我是一个系统管理员,我有一个