PDA

Visualizza la versione completa : [VB.NET] Problema con le Function.


ladyBlu
30-08-2002, 14:38
Ragazzi, oggi proprio non so cosa farei se non ci foste voi ad aiutarmi.

Ho un altro problema con VB.Net.

Devo chiamare una Function, ma mi da errore.
Vi posto il mio codice:


DTPDal = PrimaData()

Public Function PrimaData()

Dim RSPrimaData As ADODB.Recordset, miaSQL As String

miaSQL = "select min(tbscadenzario.datascadenza) as" & _
" miaDataIniziale from tbscadenzario"

RSPrimaData = New ADODB.Recordset()
RSPrimaData.Open(miaSQL, miaConn, 1, 3)

If RSPrimaData.RecordCount = 0 Then
Return Today
Else
If IsDBNull(RSPrimaData(0)) Then
Return Today
Else
Return RSPrimaData(0)
End If
End If

End Function

e il codice errore che mi esce fuori sull'istruzione in rosso:
"Eccezione non gestita di tipo "System.InvalidCastException" in Scadenzario.exe
Informazioni aggiuntive: Cast specificato non valido."

ma che significa? :confused:

Grazie ragazzi.
:ciauz:

biste
30-08-2002, 14:46
:dh:
Ora ci d un'okkiata :D

biste
30-08-2002, 14:53
Dovresti essere + precisa... Di ke tipo la variabile DTPDal? ke tipo di valori pu ritornare la function? il problema sta nei tipi delle variabili, nulla di irrisolvibile

ladyBlu
30-08-2002, 14:53
grazie biste... oggi mi stai facendo da angelo custode. :D

biste
30-08-2002, 14:56
Da Tutor :D

ladyBlu
30-08-2002, 14:57
Originariamente inviato da biste
Dovresti essere + precisa... Di ke tipo la variabile DTPDal? ke tipo di valori pu ritornare la function? il problema sta nei tipi delle variabili, nulla di irrisolvibile
ok, ora ti spiego tutto;

DTPDal un oggetto, un controllo: DateTimePicker.
la funzione pu restituire solo date: Today o quella che c' scritta nel db (RSPrimaData(0)).

thanks, thanks, thanks... :smack:

biste
30-08-2002, 15:04
DTPDal.Value = PrimaData()

Public Function PrimaData() As DateTime

Dim RSPrimaData As ADODB.Recordset, miaSQL As String

miaSQL = "select min(tbscadenzario.datascadenza) as" & _
" miaDataIniziale from tbscadenzario"

RSPrimaData = New ADODB.Recordset()
RSPrimaData.Open(miaSQL, miaConn, 1, 3)

If RSPrimaData.RecordCount = 0 OrElse IsDBNull(RSPrimaData(0)) Then
Return Today
Else
Return Convert.ToDateTime(RSPrimaData(0))
End If

End Function


Mi sono permesso di darti un'ottimizzazione al codice...Scusami
Cmq OrElse sarebbe come una or nel vb6, ma se il primo statement (RSPrimaData.RecordCount = 0) vero nn controlla neanke il secondo e enra subito nel blocco
Conver.ToDateTime serve x convertire i tipi e quindi evitare eccezioni del tipo invalidcastexception
Poi ho aggiunto .Value a DTPDal.Value = PrimaData() e ho tipizzato il valore di ritorno della function
:ciauz:

ladyBlu
30-08-2002, 15:17
ok, il codice chiarissimo e ti ringrazio per le correzioni...
ho scritto quello che mi hai postato, ma mi da un altro errore:
"Eccezione non gestita di tipo System.InvaliCastException in mscorlib.dll

Informazioni aggiuntive: Cast specificato non valido."

cio???? :master: :master: :confused:

biste
30-08-2002, 15:22
eh... dammi almeno un aiutino... dimmi dove :p

ladyBlu
30-08-2002, 15:24
:quipy: Scusami, hai ragione.
me lo da su: Return Convert.ToDateTime(RSPrimaData(0))


perdona la mia distrazione. e grazie ancora per la pazienza che hai... di ferro! :) :p

Loading