Problema con DataReader

venerdì 03 ottobre 2008 - 02.46

darkonion Profilo | Newbie

Salve a tutti. Ho un problema con un DataReader. Questo è il codice in questione, che ritorna un bel

"Riferimento a un oggetto non impostato su un'istanza di oggetto."

alla riga

"logTemp.IdLog = System.Convert.ToInt32(dr["IdLog"]);"

ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings["myConnectionString"]; string connString = cs.ConnectionString; SqlCommand Command; SqlConnection Connection = new SqlConnection(connString); string selectCmd = "SELECT l.* FROM Log_Utente l WHERE l.idlog=" + idLogTemp.ToString(); Command = new SqlCommand(selectCmd, Connection); Connection.Open(); SqlDataReader dr = Command.ExecuteReader(); Log_Utente logTemp = new Log_Utente(); logTemp = null; while (dr.Read()) { logTemp.IdLog = System.Convert.ToInt32(dr["idlog"]); logTemp.IdUtente = System.Convert.ToInt32(dr["idutente"]); logTemp.Data = System.Convert.ToDateTime(dr["data"]); logTemp.Descrizione = dr["descrizione"].ToString(); } dr.Close(); Connection.Close();

Ho provato a intercettare la "selectCmd" e il risultato è questo:

"SELECT * FROM Log_Utente WHERE idlog=2"

Esequendo la query direttamente sul Managment Studio ho 1 risultato (come c'è da aspettarsi).
Cosa ho sbagliato? Sto impazzendo... Eppure ho fatto copia-incolla da un altro DataReader usato (funzionante alla perfezione) 10 righe prima!

Grazie da ora

alx_81 Profilo | Guru

>Salve a tutti.
Ciao

>Ho un problema con un DataReader. Questo è il
>codice in questione, che ritorna un bel
>"Riferimento a un oggetto non impostato su un'istanza di oggetto."
>alla riga
>"logTemp.IdLog = System.Convert.ToInt32(dr["IdLog"]);"
>
> Log_Utente logTemp = new Log_Utente();
> logTemp = null;
questa assegnazione (null) elimina l'istanza.. come puoi poi cercare di valorizzare le sue proprietà?
La query torna almeno una riga, visto che la Read del datareader viene valutata e visto che l'applicazione entra nel ciclo..
Ma se metti a null l'oggetto appena creato a null, non esiste più.. Elimina la riga, perchè non serve a nulla.

>Grazie da ora
di nulla!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

darkonion Profilo | Newbie

Eh ma sai... Ho premesso che l'ora era tarda e che io stavo quasi dormendo :P

Grazie ;)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5