黑马程序员技术交流社区
标题: ado登录练习问题 [打印本页]
作者: 朱京辉 时间: 2013-1-26 11:00
标题: ado登录练习问题
本帖最后由 朱京辉 于 2013-1-27 06:29 编辑
using (SqlConnection conn = new SqlConnection (@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True;"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_User where UserName='" + UserName + "'";
if (cmd.ExecuteNonQuery() > 0)
{ //返回受影响行数>0说明有用户存在
using (SqlDataReader reader = cmd.ExecuteReader())
{
string dbpassword = reader.GetString(reader.GetOrdinal( "Password"));
if (Password == dbpassword)
{
Console .WriteLine("密码正确,登录成功" );
}
else
{
Console .WriteLine("密码错误,登录失败" );
}
}
}
else //reader返回false,就是没有查找到这个用户名
{
Console .WriteLine("用户名错误" );
}
}
}
输入正确的用户名和密码还是现实用户名错误
作者: 罗志强 时间: 2013-1-26 13:22
兄弟,你不要不误导人呀,我差点都被你这问的晕了,之前也遇到这样的问题,谢谢你让我想起来了,不废话了,告诉你为什么吧
你看哈
ExecuteNonQuery是返回受影响的行数,它是针对insert updata 这样的插入更新才有效的,因为只有这样才是真的受影响了,
你这个查询,只是查询而已,数据库内容是没有改变的,所以拿来的受影响行数啊。
希望你能看懂
你可以用ExecuteReader这样的去查吧
作者: 朱京辉 时间: 2013-1-26 13:36
ShowStyle 发表于 2013-1-26 13:22
兄弟,你不要不误导人呀,我差点都被你这问的晕了,之前也遇到这样的问题,谢谢你让我想起来了,不废话了, ...
我在SQLSERVER里用select查的时候有显示受影响行数1行,呵呵,调试了一下,看来真的不行
作者: 罗志强 时间: 2013-1-26 14:23
朱京辉 发表于 2013-1-26 13:36
我在SQLSERVER里用select查的时候有显示受影响行数1行,呵呵,调试了一下,看来真的不行 ...
汗,,,,,
你不要这样想啊!你自己查看msdn也行啊!哪里要改就会说只是针对insert这样的才会返回受影响的行数吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |