C#做登录系统的问题,输入的密码与数据库中对应密码一样,但与sql查询结果却不想等
账号zxy,密码123.输入帐号密码正确,但结果总显示“密码错误”,问题在于if(pwd==a)这个语句总是判断错误,我依次输出来看却是一样的,好纠结啊,到底是怎么回事,...
账号zxy,密码123.输入帐号密码正确,但结果总显示“密码错误”,问题在于if(pwd==a)这个语句总是判断错误,我依次输出来看却是一样的,好纠结啊,到底是怎么回事,急救啊各位高手
代码
private void button1_Click(object sender, EventArgs e)
{
string name=this.textBox1.Text.Trim().ToString();//用户名
string pwd=this.textBox2.Text.Trim().ToString();//密码
SqlConnection con=new SqlConnection("server=LENOVO-PC\\MSSQLSERVER2008;uid=sa; pwd=123; database=LGDB");
con.Open();
SqlCommand cmd=new SqlCommand("select * from [user] where uname='"+name+"'",con);
SqlDataReader dr=cmd.ExecuteReader();
if(dr.Read())
{
MessageBox.Show(dr["uname"].ToString());//能弹出窗口1显示xyz
MessageBox.Show(dr["upwd"].ToString());//能弹出窗口2显示123
MessageBox.Show(name);//能弹出窗口3显示xyz
MessageBox.Show(pwd);//能弹出窗口4显示123
string a = dr["upwd"].ToString();
if (pwd==a) //if的判断结果却总是false
{
MessageBox.Show("登录成功");
}
else
{
dr.Close();
con.Close();
MessageBox.Show("密码错误");
}
}
else
{
dr.Close();
con.Close();
MessageBox.Show("无此帐号,请注册");
}
}
依次为窗口1 2 3 4 展开
代码
private void button1_Click(object sender, EventArgs e)
{
string name=this.textBox1.Text.Trim().ToString();//用户名
string pwd=this.textBox2.Text.Trim().ToString();//密码
SqlConnection con=new SqlConnection("server=LENOVO-PC\\MSSQLSERVER2008;uid=sa; pwd=123; database=LGDB");
con.Open();
SqlCommand cmd=new SqlCommand("select * from [user] where uname='"+name+"'",con);
SqlDataReader dr=cmd.ExecuteReader();
if(dr.Read())
{
MessageBox.Show(dr["uname"].ToString());//能弹出窗口1显示xyz
MessageBox.Show(dr["upwd"].ToString());//能弹出窗口2显示123
MessageBox.Show(name);//能弹出窗口3显示xyz
MessageBox.Show(pwd);//能弹出窗口4显示123
string a = dr["upwd"].ToString();
if (pwd==a) //if的判断结果却总是false
{
MessageBox.Show("登录成功");
}
else
{
dr.Close();
con.Close();
MessageBox.Show("密码错误");
}
}
else
{
dr.Close();
con.Close();
MessageBox.Show("无此帐号,请注册");
}
}
依次为窗口1 2 3 4 展开
4个回答
展开全部
看数据库里的字段,好像前面有空格,
你可以这样写试一下
string a = dr["upwd"].Trim().ToString();
if (pwd==a)
{
你可以这样写试一下
string a = dr["upwd"].Trim().ToString();
if (pwd==a)
{
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议用select count(*) ..where..用户名 and 密码
Executescalar>0的方法
Executescalar>0的方法
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把pwd和a都去下前后空格试试,估计和你在数据库中字段的数据类型有关
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询