在三层里写了个方法public static IList<User> GetAllUsers(),然后在前台的ObjectDataSource 里去绑定数据,显示的只有一行数据,这是为什么啊?怎么才能显示全部的消息呢?

解决方案 »

  1.   

    1:可能数据库里只有一条数据
    2:DAL读取时你是不是用的是if(reader.Read())没有while哦
      

  2.   

    数据库有多行数据啊,只不过方法里有多个查询,有主外键关系,reader.close()后就没有值了!
      

  3.   

    //public static IList<User> GetAllUser()
            //{
            //    IList<User> users = new List<User>();
            //    string sql = "select * from Users";
            //    int userstateId;
            //    int userroleId;
            //    User user = new User();
            //    using (SqlDataReader reader = DBHelper.GetReader(sql))
            //    {
            //        while (reader.Read())
            //        {
            //            user.Id = Convert.ToInt32(reader["Id"]);
            //            user.Name = Convert.ToString(reader["Name"]);
            //            user.Address = Convert.ToString(reader["Address"]);
            //            user.Phone = Convert.ToString(reader["Phone"]);
            //            user.Mail = Convert.ToString(reader["Mail"]);
            //            userstateId = Convert.ToInt32(reader["UserStateId"]);
            //            user.IsOnLine = Convert.ToInt32(reader["IsOnLine"]);
            //            user.LoginId = Convert.ToString(reader["LoginId"]);
            //            user.LoginPwd = Convert.ToString(reader["LoginPwd"]);
            //            userroleId = Convert.ToInt32(reader["UserRoleId"]);
            //            user.Gender = Convert.ToInt32(reader["Gender"]);
            //            user.UserState = UserStateService.GetUserStateById(userstateId);
            //            user.UserRole = UserRoleService.GetUserRoleById(userroleId);
            //            users.Add(user);
            //            reader.Close();
            //        }
            //    }
            //    return users;
            //}
      

  4.   

    你的reader明显是放在while外面嘛,你那样读一行就关闭了 
      

  5.   

    错了。reader.Close(); 放在循环外面了。改成
           //        while (reader.Read()) 
            //        { 
            //            user.Id = Convert.ToInt32(reader["Id"]); 
    ........................
            //            user.UserRole = UserRoleService.GetUserRoleById(userroleId); 
            //            users.Add(user);         //        } 
            //        reader.Close(); 
      

  6.   

    错了。 reader.Close(); 放在循环里面了。 改成 
          //        while (reader.Read()) 
            //        { 
            //            user.Id = Convert.ToInt32(reader["Id"]); 
    ........................ 
            //            user.UserRole = UserRoleService.GetUserRoleById(userroleId); 
            //            users.Add(user);         //        } 
            //        reader.Close();