A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈育梅 高级黑马   /  2012-11-1 10:36  /  2807 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈育梅 于 2012-11-1 10:45 编辑
  1. using (SqlCommand cmd = conn.CreateCommand())
  2. {
  3. cmd.CommandText = "select count(*) from User_T where Username=@name ";
  4. cmd.Parameters.Add(new SqlParameter("name", txtusername.Text));
  5. using (SqlDataReader reader = cmd.ExecuteReader())
  6. {
  7. if (reader.Read())
  8. {
  9. int errortime = reader.GetInt32(reader.GetOrdinal("Errortime"));
  10. if (errortime > 3)
  11. {
  12. MessageBox.Show("登录次数过多,禁止登录!");
  13. return;
  14. }
  15. string dbpassword = reader.GetString(reader.GetOrdinal("Password"));
  16. if (dbpassword == txtpassword.Text)
  17. {
  18. MessageBox.Show("登录成功");
  19. }
  20. else
  21. {
  22. IneErrortime();
  23. MessageBox.Show("登录失败");
  24. }
  25. }
  26. else
  27. {
  28. MessageBox.Show("用户名不存在");
  29. }
  30. }
  31. }
复制代码
运行时提示:Errortime 确保列表中最大索引小于列表大小!求指点,谢谢

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

5 个回复

倒序浏览
可以看一下你的数据库表吗
回复 使用道具 举报
ID      int
回复 使用道具 举报
ID                  int
Username        nchar(10)
Password         nchar(10)
Errortime         int

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
郑鹏 发表于 2012-11-1 12:41
可以看一下你的数据库表吗


我知道哪里出错了,03.cmd.CommandText = "select count(*) from User_T where Username=@name ";
这样查询出来就一列,这条SQL语句中没有“ErrorTimes”列,在reader里面取值就会报错。 改成cmd.CommandText = "select * from User_T where Username=@name ";
回复 使用道具 举报
陈育梅 发表于 2012-11-1 13:50
我知道哪里出错了,03.cmd.CommandText = "select count(*) from User_T where Username=@name ";
这样查 ...


对!没错!不好意思啊!我没看出来!学艺不精啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马