sql >> Base de Datos >  >> RDS >> Sqlserver

Error:intento de lectura no válido cuando no hay datos presentes. mientras usa SQLDataReader incluso si hay datos presentes

Cuando llama a SqlCommand.ExecuteReader() , el SqlDataReader que te da está posicionado inicialmente antes el primer registro. Debe llamar a SqlDataReader.Read() para pasar al primer registro antes de intentar acceder a cualquier dato. SqlDataReader.Read() devuelve true si pudo pasar al primer registro; devuelve false si no hay registros.

if (sqlDataReader.Read())
{    
    String roles = sqlDataReader[0].ToString();
    return roles;
}
else
{
    // The user name or password is incorrect; return something else or throw an exception.
}