求助SqlDataReader对象 只能读取一行,无法循环读取!??

UPsje 2009-11-01 11:30:36
public IList<User> GetAllUsers()
{
UserRoleService userRoleService = new UserRoleService();
UserStateService userStateService = new UserStateService();

SqlDataReader dataReader = null;
List<User> list = new List<User>();
try
{
dbHelper.RunProc("Get_AllUsers", out dataReader);
while (dataReader.Read())
{
User user = new User();
user.Id = (int)dataReader["Id"];
user.LoginId = (string)dataReader["LoginId"];
user.LoginPwd = (string)dataReader["LoginPwd"];
user.Name = (string)dataReader["Name"];
user.Address = (string)dataReader["Address"];
user.Phone = (string)dataReader["Phone"];
user.Mail = (string)dataReader["Mail"];
user.UserRole = userRoleService.GetUserRoleById((int)dataReader["UserRoleId"]);
user.UserState = userStateService.GetUserStateById((int)dataReader["UserStateId"]);

list.Add(user);
}
dataReader.Close();
return list;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
throw ex;
}
}
说明:RunPoc运行存储过程方法。
出现抛出异常,未将对象引用到实例,
把 while(dataReader.Read()) 改成 if(dataReader.Read())即前台正常读出一行数据。为什么只能读出第一行数据?
急啊,求助下,我怎么也找不出为什么来。
...全文
306 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
UPsje 2009-11-01
  • 打赏
  • 举报
回复
就是那两句的问题,非常感谢你。
我记得以前好像注释过,不行。这次又行了。汗啊。不过真的非常感谢你!
我是 刚注册的号,没有积分加,很抱歉哦!
kanadeng 2009-11-01
  • 打赏
  • 举报
回复
int roleid=(int)dataReader["UserRoleId"]; 
int stateid=(int)dataReader["UserStateId"];

//user.UserRole = userRoleService.GetUserRoleById(roleid);
//user.UserState = userStateService.GetUserStateById(stateid);
//list.Add(user);
kanadeng 2009-11-01
  • 打赏
  • 举报
回复
if又不是循环语句。。肯定是读一行了。。

抛出异常因该是你某行中的哪个个值为NULL

你用断点看看咯。。这因该容易查的。
UPsje 2009-11-01
  • 打赏
  • 举报
回复
不是,不是前台的异常,就是后台直接出现异常。
throw ex; 未将对象引用到实例。
并且if 和 while我都试过两种前台显示.while时,后台直接抛出异常,和前台似乎没点关系
dujingjing1230 2009-11-01
  • 打赏
  • 举报
回复
应该已经把所有行数都读入List中了,是不是你在前台显示得时候代码有问题?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧