[VB 2005] Problema sulle date

martedì 23 settembre 2008 - 12.37

netcom77 Profilo | Newbie

Buongiorno a tutti,
Premetto che uso VB 2005 con Sql server,

Ho scritto un'applicazione che in fase di debug non segnala errori.
Ho creato il setup installandolo sulla stessa macchina senza ricevere errori.

Problema e che su alcuni pc segnala questo errore :

" The conversion of char data type to a datetime data type resulted in out of range date time value. "

Ecco le righe di codice incriminate :

Dim dal As Date Dim al As Date TextBoxAnno.Text = Date.Now.Year dal = "01/01/" & TextBoxAnno.Text al = Date.DaysInMonth(TextBoxAnno.Text, 12) & "/12/" & TextBoxAnno.Text

rossimarko Profilo | Guru

>Ecco le righe di codice incriminate :
>
>Dim dal As Date
>Dim al As Date
>
>TextBoxAnno.Text = Date.Now.Year
>dal = "01/01/" & TextBoxAnno.Text
>al = Date.DaysInMonth(TextBoxAnno.Text, 12) & "/12/" & TextBoxAnno.Text

Ciao,

il problema è dovuto al fatto che se il computer usa una lingua diversa dall'italiano il formato della data cambia. Ti consiglio quindi di usare il costruttore dell'oggetto datetime a cui puoi passare i valori relativi a giorno, mese e anno (http://msdn.microsoft.com/en-us/library/xcfzdy4x.aspx):
al = new datetime(2008,12,31)
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

netcom77 Profilo | Newbie

Ciao grazie per la risposta,
scusa la mia ignoranza ma il pc usa windows xp home e le impsotazioni internazionali sono corrette.
a cosa ti riferisci tu ?
e poi come mai genera un'errore su questa riga
TextBoxAnno.Text = Date.Now.Year

rossimarko Profilo | Guru

Si mi riferisco al fatto che in base alle impostazioni internazionali dell'utente che sta facendo girare l'applicazione tu potresti avere dei problemi di conversione. In questo caso o forzi tu la culture del thread della tua applicazione oppure lasci la possibilità all'utente di settare le impostazioni come vuole, stando però attento quando fai le conversioni da stringa a datetime come in questo caso.

Sei sicuro che la riga di codice incriminata sia quella e non una di quelle sotto? perchè l'errore dice
"The conversion of char data type to a datetime data type resulted in out of range date time value." e in quella riga la conversione è da datetime a stringa
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
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