Ciao a tutti ho un problema con il seguente codice:
using (SqlConnection conn = new SqlConnection(HelperDB.LeggiLaStringaDiConnessione()))
{
using (SqlCommand cmd = new SqlCommand("spLeggiRichieste", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@CodiciProduttore", codiciProduttore);
cmd.Parameters.AddWithValue("@IdAmbiente", idAmbiente);
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
richiestaColl = new List<RichiestaGpp>();
while (reader.Read())
richiestaColl.Add(PopolaRichiesta(reader));
}
reader.Close();
}
}
conn.Close();
}
Il problema è questo:
nel momento in cui viene valorizzata la variabile
reader, questa contiene, correttamente, un record ma, subito dopo, viene vista come empty.
La proprietà
reader.HasRows restituisce true e quindi il codice che sfrutta i dati del datareader va in errore.
Procedendo in debug ho notato che, andando a verificare la valorizzazione del datareader passandoci sopra il mouse ed espandendo le varie voci fino ad ottenere i valori in esso contenuti, la prima volta che ci passo sopra è tutto come mi aspetto, ma semplicemente spostando il mouse e ritornandoci sopra per ripetere la visualizzazione, il datareader risulta
empty Grazie per l'aiuto