当前位置:编程学习 > C#/ASP.NET >>

登陆怎么也登陆不进去,总提示密码错误,高手给看看

如下代码,登陆怎么也登陆不进去,总提示密码错误,高手给看看问题出在哪里?或可能出在那里? 
using System; 
using System.Data; 
using System.Data.Common; 
using System.Data.SqlClient; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

public partial class _Default : System.Web.UI.Page 

    string userid; 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Page_Init(object sender, EventArgs e) 
    { 
        this.tbName.Text = ""; 
        this.tbPsw.Text = ""; 
    } 
    protected void btSubmit_Click(object sender, EventArgs e) 
    { 
        string strConn = "Data Source=r98klktyib53sip;Initial Catalog=SimpleBBS;User ID=sa;Password=123"; 
        DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory("System.Data.SqlClient"); 
        DbConnection dbConn = dbProviderFactory.CreateConnection(); 
        dbConn.ConnectionString = strConn; 
        dbConn.Open(); 
        DbCommand dbComm = dbProviderFactory.CreateCommand(); 
        dbComm.Connection = dbConn; 
        dbComm.CommandText = "Select id,password from users where username ='" + tbName.Text + "'"; 
        IDataReader reader = dbComm.ExecuteReader(); 
        try 
        { 
            if (reader.Read()) 
            { 
                if (reader.GetString(1) == tbPsw.Text) 
                { 
                    userid = reader.GetInt32(0).ToString(); 
                    Session["userid"] = userid; 
                    Response.Redirect("bbs.aspx"); 
                } 
                else 
                { 
                    Response.Write("用户密码不正确!"); 
                } 
            } 
            else 
            { 
                Response.Write("没有此用户!"); 
            } 
        } 
        finally 
        { 
            reader.Close(); 
            dbConn.Close(); 
            dbConn.Dispose(); 
        } 
    } 
    protected void btCancel_Click(object sender, EventArgs e) 
    { 
        Response.Redirect("default.aspx"); 
    } 

运行时,添上用户名和密码,点登陆,就提示"用户密码不正确!" 
我认为,用户名的验证可以通过,主要是第二个 if (reader.GetString(1) == tbPsw.Text)总有问题,为什么控件输入的值不能和reader取的值一样呢?  --------------------编程问答-------------------- 找到问题的所在了,是数据库的问题,每次注册的时候,密码那一项不管输入的是几位密码,都自动添入十位数,不满十位就用空格补齐,这是怎么回事???? --------------------编程问答-------------------- 你密码字段是什么类型的啊,照理说你没有人为的去处理的话,是不会出现这种情况的吧? --------------------编程问答-------------------- d --------------------编程问答--------------------
引用 1 楼 x_zlm 的回复:
找到问题的所在了,是数据库的问题,每次注册的时候,密码那一项不管输入的是几位密码,都自动添入十位数,不满十位就用空格补齐,这是怎么回事????


你的SQL语语这样写
string.Format(Select id,password from users where username ='{0}' and password='{1}', tbName.Text ,tbPsw.Text); 
if(reader.Read()){
成功
}else{
失败
} --------------------编程问答-------------------- 字段类型
用可变类型 --------------------编程问答-------------------- 谢谢各位了,小弟初学,以后还要多麻烦大家了。 --------------------编程问答-------------------- 初学 先用最基本的  然后再研究这样的 --------------------编程问答-------------------- 练中学吧。。。。。遇到问题才能学到东西 --------------------编程问答-------------------- 看看数据库字段的类型是什么?chanr 和nchar类型是定长,不足的部分是空格补齐的;有两个办法,要么你把输入的密码按照字段的长度用空格补齐,要么数据库中设计的字段就用变长的varchar 或者nvarchar
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,