Controllo su mydatareader!

mercoledì 29 settembre 2004 - 16.53

Bronzo Profilo | Junior Member

Allora devo effettuare un controllo per vedere se può essere effettuato un datareader (ciè la select non restituisce un valore vuoto)

quindi devo controllare se è possibile effetuare:
myDataReader2=myCommand2.ExecuteReader()
sapete come fare? Senza usare il Try però!

Grazie!

trinity Profilo | Guru

Fammi capire meglio, te devi controllare con una query di Select se la tabella contiene determinati record oppure No?

Ciao
fabio

Bronzo Profilo | Junior Member

Io effettuo una query, ma non è detto che questa mi dia un risultato, devo vedere se mi da risultato o no!

trinity Profilo | Guru

Scusami mi puoi spiegfare meglio cosa intendi per:


quindi devo controllare se è possibile effetuare:
myDataReader2=myCommand2.ExecuteReader()
sapete come fare? Senza usare il Try però!

Ciao
Fabio

Bronzo Profilo | Junior Member

Se eseguo myDataReader2=myCommand2.ExecuteReader() e il risultato della queri è nullo (non restituisce record) mi viene l'errore:

No value given for one or more required parameters.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: No value given for one or more required parameters.

Source Error:


Line 125:
Line 126: myCommand2 = New OleDbCommand ("SELECT Note, Codice From " & Table & " Where Codice='" & Code & "'", myConnection2)
Line 127: myDataReader2=myCommand2.ExecuteReader()
Line 128: If myDataReader2.Read=False Then
Line 129: myDataReader2.Close()

devo fare in modo che se il reader non può essere letto allora fa un'azione, altrimenti un'altra!

trinity Profilo | Guru

la procedura a prima vista sembra corretta, anche io faccio così, ti consiglio di non forzare il datareader, ossia fai così:

if datareader() then

esle

end if

Ciao
Fabio

trinity Profilo | Guru

mi sono confuso

if datareader.read() then

else

end if

Ciao

trinity Profilo | Guru

...e controlla bene la query di Select

Brainkiller Profilo | Guru

Ciao Bronzo,
io di solito in C# scrivo:

while (dr.Read())
{
}

Se non ci sono record esce dal ciclo e prosegue senza errori.
Dentro nel ciclo puoi mettere anche un counter se vuoi, se dopo il ciclo è a zero significa che non c'erano record.

ciao
david

Bronzo Profilo | Junior Member

Il problema è qua:
myDataReader2=myCommand2.ExecuteReader()

lui mi da errore qui, sul caricamento del reader
non arrivo a fare myDataReader.Read o If myDataReader.Read=Fale

Perché mi da errore sul caricamento del reader!

:|

help me ;)

trinity Profilo | Guru

Domanda banale..ma l'oggetto datareader l'hai dichiarato?

Dim dr as OleDbDatareader

Ciao
Fabio

Bronzo Profilo | Junior Member

Si
Dim myDataReader As OleDbDataReader

!!!

Bronzo Profilo | Junior Member

Dim myDataReader2 As OleDbDataReader

trinity Profilo | Guru

Secondo me l'unica cosa è che si controlla passo passo il codice..Se vuoi postami il database ed il progetto e te lo controllo

Ciao
Fabio

Bronzo Profilo | Junior Member

Ho trovato l'errore ma cmq non so come superarlo!

Il problema è questo:
il comando HasRows mi dice se il record è stato trovato o meno!

Quindi
Select campo1, campo2
If myDataReader.HasRows Then
Response.Write("CIAO")
Else
Response.Write("O NO")
End If

Fino qui tutto ok, il problema è quando il campo1 o il campo2 sono vuoti! Lui nno riesce a riempire il datareader e mi da errore!

Come faccio a evitare questo inconveniente?

trinity Profilo | Guru

Si ma come anche ti ha detto precedentemente David quando fai una datareader,read() se è pieno è uguale a true altrimenti è false ma nel caso in cui non dovrebbe riempirsi non ti dovrebbe dare l'errore..nella peggiore delle ipotesi puoi utilizzare il try..catch..end try..

Ciao
Fabio

Bronzo Profilo | Junior Member

Il fatto è che nno vorrei usare il try, se il campo e Null lui l'errore me lo da e come, pure se il record c'é!

trinity Profilo | Guru

Impossibile!!significa che da qualche parte esiste un errore...ma non dipende dal datareader...cmq mi riesci a postare il tuo progetto ed una copia del database? se no giriamo intorno al problema senza mai risolverlo..

Ciao
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5