Invalidcast exception (come fare)

venerdì 09 marzo 2007 - 15.15

Amodio Profilo | Expert

slave a tutti
ho un sito web su un server...il che mi pare di capire che ha le impostazioni internazionali in inglese in quanto su una normale data se cerco di fare il cdate() oppure di sottrare un giorno mi da questo errore:

InvalidCastException: Cast from string "15-03-2007" to type 'Date' is not valid

nel load della pagina ho persino messo questo:
Thread.CurrentThread.CurrentUICulture = New CultureInfo("it-IT")
in modo da fargli capire che sto lavorando in italiano, ma niente, continua a dare errore di vonversione di date :(

cosa posso fare?
grazie

Brainkiller Profilo | Guru

>in modo da fargli capire che sto lavorando in italiano, ma niente,
>continua a dare errore di vonversione di date :(
>cosa posso fare?

Ciao,
prova a fare così:

DateTime data=DateTime.Parse(stringa_con_data);

poi se vuoi aggiungere giorni:

data=data.AddDays(1);

stringa_con_data è una variabile che contiene la data e dev'essere naturalmente in un formato interpretabile.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Amodio Profilo | Expert

ciao
ho provato a fare come hai detto tu
questa è una pagina di prova in cui sto facendo i test: http://66.71.189.36/prenotazioni/prova.aspx

il codice che ho inserito è questo:
Dim data As DateTime = DateTime.Parse("11-04-1977") Me.Label1.Text = data data = data.AddDays(1) Me.Label2.Text = data

come puoi notare il risultato è :"11/5/1977"
infatti mi ha scalato di un mese e non di un giorno :(
altro problema: questa data la devo inserire in mysql che ha il formato "yyyy/mm/dd" come faccio??

grazie

Brainkiller Profilo | Guru

>come puoi notare il risultato è :"11/5/1977"
>infatti mi ha scalato di un mese e non di un giorno :(
>altro problema: questa data la devo inserire in mysql che ha
>il formato "yyyy/mm/dd" come faccio??

Guarda che probabilmente è giusto che sia così, nel senso che non è vero quello che dici, ti ha scalato un giorno e non un mese. Il problema è che la data è visualizzata in formato inglese. Probabilmente è questo il problema.
Che impostazioni hai definito nel web.config ? Hai messo come culture, it-IT ?
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Amodio Profilo | Expert

lo ho messo nel page_load:
Thread.CurrentThread.CurrentUICulture = New CultureInfo("it-IT")

nel web.config?
no non ho provato...ma forse hai ragione...
ora cerco su google come si mette

uhm..no,ho trovato del codice qui:http://www.morpheusweb.it/html/manuali/aspnet/aspnet_webconfig.asp
ho inserito questo:
<globalization culture="IT-it"
uiCulture="IT-it" />

ma da sempre errore
sai cosa posso inserire?
grazie

Brainkiller Profilo | Guru

>ma da sempre errore
>sai cosa posso inserire?

In che senso errore ? Ora è corretto sulla pagina prova.aspx che hai indicato poco fa.

Da 11/05 va a 12/05.

E' giusto no ?
ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Amodio Profilo | Expert

si è corretto

per coloro che avranno il mi ostesso problema:
basta impostare questa stringa nel web.config:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="it-IT" uiCulture="it-IT" />
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