登陆怎么也登陆不进去,总提示密码错误,高手给看看
如下代码,登陆怎么也登陆不进去,总提示密码错误,高手给看看问题出在哪里?或可能出在那里?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 --------------------编程问答--------------------
你的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