我刚学习ASP.NET写了个登录页面,出现一个问题private void btnsumbit_Click(object sender, System.EventArgs e)
{
SqlConnection conn=new SqlConnection("server=wang-669dc1249a;database=TingYu;integrated security=true;");
SqlCommand comm = new SqlCommand("select username,password from userinfo ",conn); conn.Open();
SqlDataReader myread= comm.ExecuteReader();
while(myread.Read())
{
string username= Convert.ToString(myread["username"]); //把从数据库读来的数据显式的转化为字符串格式
string password= Convert.ToString(myread["password"]);
if(txtname.Text == username && txtpass.Text == password)
{
Label3.Text="That is OK";
}
else
{
Label3.Text="Username or Password is Error";
} }
myread.NextResult();
conn.Close();
}
然后进行调试; 输入用户名和密码
如果我输入的用户名和密码是 用户表中排在最后一行的,会正确的显示,
如果不是最后一行 则不会正确的显示.比如 我连接的数据表是userinfo
里面有三行数据 (username password 是表的列)
username password
A a1
B b2
C c3在登录页面 输入 用户名 C 密码 c3
则会显示 That is OK如果输入其他 A a1 或者 B b2 都显示Username or Password is Error而我的愿意是 只要是输入
A a1
B b2
C c3
应该都是 That is OK我百思不得其解,请高手帮帮忙
{
SqlConnection conn=new SqlConnection("server=wang-669dc1249a;database=TingYu;integrated security=true;");
SqlCommand comm = new SqlCommand("select username,password from userinfo ",conn); conn.Open();
SqlDataReader myread= comm.ExecuteReader();
while(myread.Read())
{
string username= Convert.ToString(myread["username"]); //把从数据库读来的数据显式的转化为字符串格式
string password= Convert.ToString(myread["password"]);
if(txtname.Text == username && txtpass.Text == password)
{
Label3.Text="That is OK";
}
else
{
Label3.Text="Username or Password is Error";
} }
myread.NextResult();
conn.Close();
}
然后进行调试; 输入用户名和密码
如果我输入的用户名和密码是 用户表中排在最后一行的,会正确的显示,
如果不是最后一行 则不会正确的显示.比如 我连接的数据表是userinfo
里面有三行数据 (username password 是表的列)
username password
A a1
B b2
C c3在登录页面 输入 用户名 C 密码 c3
则会显示 That is OK如果输入其他 A a1 或者 B b2 都显示Username or Password is Error而我的愿意是 只要是输入
A a1
B b2
C c3
应该都是 That is OK我百思不得其解,请高手帮帮忙
解决方案 »
- 如何在程序中判定NeatUpload组件是否将文件上传完成
- 求asp.net c#语言的三层架构例子
- 模版循环问题
- 如何对gridview header内linkbutton赋值!
- 编辑器的代码代码格式化功能是怎么实现的??
- [求助]关于一个日志系统中时间日期的问题~~~HELP~~
- 困扰我两个多星期的问题
- 去除购物袋中东西的一个问题,学生我郁闷了好长时间了,谢谢了
- 江苏无锡(0510)的.net高手们来这里签名啊,打家认识一下
- 各位老大请了!小弟是asp.net初学者,求一本初级教程,理解起来比较简单的!谢谢了!
- 关于循环搜索数据库的问题.
- 在线高分求解,请高手帮忙: ASP.NET中的DLL问题???
comm.Connection .Open ();
int flag=(int)comm.ExecuteScalar ();
comm.Connection .Close ();
if(flag>0){Label3.Text="That is OK";}
else{Label3.Text="Username or Password is"; }
你用这句是用着干什么啊?
去掉应该就可以了,
试试吧!
1.先检查 A a1, 当然是失败了,显示Username or Password is Error
2.检查 B b2, 成功, 显示OK
3.检查 C C3, 失败, 又显示Error,
显然,只要不是C C3, 即使成功, 也会因为最后一行失败,而显示Error
正确的代码是:
string sel = "select count(*) from ... where username = ... and password = ...";
int cnt = (int) comm.ExecuteScalar(sel);
if (cnt == 1)
成功
else
失败QQ476619652