Problema con passaggi di parametri di tipo Date

lunedì 30 novembre 2009 - 10.19

trinity Profilo | Guru

salve ragazzi,
in un dabadate generato con sql server 2008 ho una tabella all'interno della quale vi sono dei campi definiti "Date".
Il salvataggio ed aggiornamento dei campi avviene perfettamente.
Poi ho creato una stored che mi permette di riprendere i campi per poterli far vedere a video. Eseguendo la stored in sql server i dati si visualizzano perfettamente.
Quando passo ad eseguire il codice in vbnet 2008 mi esce l'errore "Cast non valido"
I campi delle date quando sono vuoti gli passo il valore '01/01/1900' pertanto quando eseguo la select questi campi sono comunque valorizzati.

il codice della riga interessata che non funziona in vb è il seguente:

ObjAlb.DataFineAttivita = SqlDr.GetSqlDateTime(28).Value

DataFineAttivita è dichiarato come Date

Dove sbaglio?
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

Jok83 Profilo | Junior Member

Ciao
può essere la conversione da datetime a date..
ObjAlb.DataFineAttivita = SqlDr.GetSqlDateTime(28).Value
magari passa '01/01/1900 00:00:0000' e datafineattivata e settata come data 'dd/MM/yyyy'...
è l'unica cosa che mi viene ma penso l'avresti visto in debug..

trinity Profilo | Guru

si l'errore alla fine è quello...
ho fatto dei test ma noto che il problema è la dicitura: SqlDr.GetSqlDateTime(28).Value
Pertanto la domanda ora è la seguente: "Vb.net non ha un parametro che gestisce solo solo il formato Date?"

Ciao e grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

Teech Profilo | Expert

Devi usare il metodo GetDateTime del DataReader che restituisce un oggetto di tipo DateTime...
http://msdn.microsoft.com/it-it/library/system.data.sqlclient.sqldatareader.getdatetime.aspx

Il metodo GetSqlDateTime ottiene un tipo diverso (SqlDateTime)...
http://msdn.microsoft.com/it-it/library/system.data.sqlclient.sqldatareader.getsqldatetime.aspx

Il tutto indipendentemente dal tipo Date o DateTime in SQL:
Il valore in SQL è un tipo di SQL che può essere memorizzato in .NET con un tipo DateTime o un tipo SqlDateTime a seconda delle situazioni di utilizzo. Di solito si usa il DateTime in quanto è il tipo nativo .NET mentre SqlDateTime è il tipo nativo SQL.

--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole
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