DataReader

martedì 21 dicembre 2004 - 15.14

fguida Profilo | Expert

Ciao ragazzi...
avrei bisogno di sapere se qualcuno di voi ha mai eseguito un controllo su un GetString() di un datareader, ovvero:
io ho un Datareader dr
poi mi vado a fare l'execute, ed il read.....fin qui tutto bene
Se poi vado a leggere il campo 0 con dr.GetString(0) mi torna il dato, ma solo se il campo non è vuoto...in tal caso mi va in errore l'applicazione.
Avete mai fatto un controllo su ciò in modo che esegua il getstring() solo se il dato viene poi valorizzato?
Grazie

Francesco

fguida Profilo | Expert

In c# l'ho scritto in questo modo:

if (!(dr.GetString(0) == System.DBNull.Value.ToString()))
{
txtRagioneSociale.Text = dr.GetString(0);
}

ti sembra corretto? No perchè a me da errore!!!!
Grazie

Francesco

fguida Profilo | Expert

Bene, ti ringrazio

Francesco

fguida Profilo | Expert

Ottimo!!!
Ecco il codice esatto..ti ringrazio

Francesco

------------------------------------------------------------
if (dr.GetValue(0).ToString() != "")
{
txtRagioneSociale.Text = dr.GetString(0);
}
------------------------------------------------------------

teologoeretico Profilo | Newbie

Ho un problema analogo:

se uso il seguente comando per il DataReader:
myCommand.CommandText = "SELECT numerofattura FROM fatture WHERE numerofattura = 1000"

e poi faccio

msgBox(myReader.HasRows)

come prevedibile, restituisce giustamente True o False a secondo che trovi righe o meno.

Ma se ho:

myCommand.CommandText = "SELECT Max(numerofattura) FROM fatture"

myReader.HasRows è sempre vera, anche se non trova record...

Ovvero, anche se il DataReader non ha righe, per VB.NET c'è un'unica riga, di tipo "Prompt".

Ho provato tutti gli eventuali suggerimenti, proposti da questo thread, ma nulla di fatto. Visual Studio segnala sempre "nessun dato per la riga selezionata", laddove io scrivessi:

MsgBox(myReader.GetInt32(0)) o qualcosa di simile.

Perchè la proprietà HasRows non funziona se la query SQL contiene una formula o una funzione? :)



"All I want is a Dataset..."

teologoeretico Profilo | Newbie

Mi scuso se ho fato questo post VB.Net, qui sulla sezione C#!! Ma la questione credo sia la stessa per entrambi i linguaggi e mi sembrava abbastanza pertinente :)

"All I want is a Dataset..."
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5