求解答,基于ASP.net(C#)的代码,运行后,用户名和密码正确,仍提示密码错误是怎么回事?代码如下
protectedvoidLoginView1_ViewChanged(objectsender,EventArgse){stringstrConn="Provider=...
protected void LoginView1_ViewChanged(object sender, EventArgs e)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("yginfo.mdb");
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();//打开数据库
String sql="select username,[password],permission from[user] where username='"+username.Text+"'";
//查寻是否有相同用户名的sql语言
// OleDbDataReader reader =new OleDbDataReader(sql,conn);
//生成OleDbDataReader的对象reader用于存放conn执行SQL操作后的结果
OleDbCommand cmd=new OleDbCommand(sql,conn);
//对conn执行sql操作
OleDbDataReader reader = cmd.ExecuteReader();//;
//reader=cmd.ExecuteReader();//将conn执行SQL操作后的结果赋值给reader
if(reader.Read())//是否有相同用户名的记录
{
if(reader["password"].ToString()!=password.Text);//检测密码是否正确
{
Response.Write("你输入的密码有误");
return;}
}
else
{
Response.Write("您输入的用户名有误!");
return;
}
Session["username"]=reader["username"].ToString();
Session["permission"] = reader["permission"].ToString();
switch( reader["permission"].ToString())
{
case"管理员":
Response.Redirect("dataview.aspx");
break;
case"普通":
Response.Redirect("admin.aspx");
break;}
Response.Redirect ("dataview");
}}
}
是不是因为我没写后台程序,所以数据库无法连接??? 展开
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("yginfo.mdb");
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();//打开数据库
String sql="select username,[password],permission from[user] where username='"+username.Text+"'";
//查寻是否有相同用户名的sql语言
// OleDbDataReader reader =new OleDbDataReader(sql,conn);
//生成OleDbDataReader的对象reader用于存放conn执行SQL操作后的结果
OleDbCommand cmd=new OleDbCommand(sql,conn);
//对conn执行sql操作
OleDbDataReader reader = cmd.ExecuteReader();//;
//reader=cmd.ExecuteReader();//将conn执行SQL操作后的结果赋值给reader
if(reader.Read())//是否有相同用户名的记录
{
if(reader["password"].ToString()!=password.Text);//检测密码是否正确
{
Response.Write("你输入的密码有误");
return;}
}
else
{
Response.Write("您输入的用户名有误!");
return;
}
Session["username"]=reader["username"].ToString();
Session["permission"] = reader["permission"].ToString();
switch( reader["permission"].ToString())
{
case"管理员":
Response.Redirect("dataview.aspx");
break;
case"普通":
Response.Redirect("admin.aspx");
break;}
Response.Redirect ("dataview");
}}
}
是不是因为我没写后台程序,所以数据库无法连接??? 展开
展开全部
在Response.Write("你输入的密码有误");这一行下断点,然后运行,检查reader["password"].ToString()与password.Text倒底是什么。
追问
刚试了一下,但是断点我不会用,具体怎么操作呢,求指教
追答
在那一行上右键-断点-插入断点就行了,然后再运行,程序运行到那就会停,鼠标移动password.Text上应该就能看到值,比较前后两个值的区别,如果看不到就在前面加上
string aaa=reader["password"].ToString();
string bbb=password.Text;
然后同样下了断点再运行,看看aaa和bbb的值
展开全部
if(!(reader["password"].ToString()==password.Text));//检测密码是否正确
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查一下密码是不是有空格什么的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体记不清了,#中的字符串比较好像不能用!=吧,改成equals方法试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询