阅读器关闭时 Read 的尝试无效
我在dbmanager类中定义了一个方法     
  public static SqlDataReader GetRead(string sql, SqlParameter[] param)
        {
            using (SqlConnection sqlcon = new SqlConnection(constr))
            {
                SqlCommand sqlcom = new SqlCommand(sql, sqlcon);
                sqlcom.Parameters.AddRange(param);
                sqlcon.Open();
                SqlDataReader reader = sqlcom.ExecuteReader();
                return reader;
            }
        }              现在我在一个类中用一个方法就收它的sqldatareader;
        public static List<User> GetAllUser()
         {
             string sql = "select * from users ";
             SqlParameter[] paraminfo = new SqlParameter[] {};
             SqlDataReader reader = DBManager.GetRead(sql,paraminfo);
             List<User> users = new List<User>();              
             while(reader.Read())
             {
                 User user = new User();
                 user.Id=(int)reader["Id"];
                 user.LoginId = (string)reader["LoginId"];
                 user.LoginPwd = (string)reader["LoginPwd"];
                 user.Address=(string)reader["Address"];
                 user.Mail=(string)reader["Mail"];
                 user.Name=(string)reader["Name"];
                 user.Phone=(string)reader["Phone"];
                 int roleid=(int)reader["UserRoleId"];
                 int stateid=(int)reader["UserStateId"];
                 user.Userrole=UserRoleService.GetUserRoleById(roleid);
                 user.Userstate = UserStateService.GetUserStateById(roleid);
                 users.Add(user);
             }             
             return users;
         }
         结果报错:
         阅读器关闭时 Read 的尝试无效。  
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  
异常详细信息: System.InvalidOperationException: 阅读器关闭时 Read 的尝试无效。
源错误:  
行 22:             List<User> users = new List<User>();
行 23:              
行 24:             while(reader.Read())
行 25:             {
行 26:                 User user = new User();  
源文件: H:\PetShop\petshopDAL\UserService.cs    行: 24  
  各位大哥求救哇  
------解决方案--------------------using (SqlConnection sqlcon = new SqlConnection(constr))
           {
               SqlCommand sqlcom = new SqlCommand(sql, sqlcon);
               sqlcom.Parameters.AddRange(param);
               sqlcon.Open();
               SqlDataReader reader = sqlcom.ExecuteReader();
               return reader;
           }
       }  
你使用了using 所有未释放资源在using结束后会自动释放
------解决方案--------------------