Problema Convert.ToDate sul server

mercoledì 31 luglio 2013 - 12.16
Tag Elenco Tags  C#  |  .NET 4.0

svipla Profilo | Senior Member

Ciao a tutti
ho un problema strano. Se eseguo questa istruzione in locale va bene, mentre sul server mi da errore e non esegue la query. Non riesco a capire perchè:

Convert.ToDateTime(ordine["data_pagamento"].ToString()).ToString("yyyy-MM-dd HH:mm:ss")

Per esempio ordine["data_pagamento"] è uguale a: 25/07/2013 10.21.17 o 26/07/2013 0.00.00

Grazie mille

algraps Profilo | Junior Member

>Ciao a tutti
>ho un problema strano. Se eseguo questa istruzione in locale
>va bene, mentre sul server mi da errore e non esegue la query.
>Non riesco a capire perchè:
>
>Convert.ToDateTime(ordine["data_pagamento"].ToString()).ToString("yyyy-MM-dd
>HH:mm:ss")
>
>Per esempio ordine["data_pagamento"] è uguale a: 25/07/2013 10.21.17
>o 26/07/2013 0.00.00

Ciao che errore ricevi? sembra un problema di regional setting differenti. Prova ad utilizzare
DateTime.ParseExact in questo modo : date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

Ti giro un link : http://www.dotnetperls.com/datetime-parse

Fammi Sapere
Ciao
al.




A.G.
http://nothingnessit.wordpress.com/

svipla Profilo | Senior Member

l'errore è questo

String was not recognized as a valid DateTime.
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.FormatException: String was not recognized as a valid DateTime.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[FormatException: String was not recognized as a valid DateTime.]
System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style) +3619090
System.DateTime.ParseExact(String s, String format, IFormatProvider provider) +31
DataBanker.aggiornaOrdine(DataRow ordine) +1215
Ordini.aggiornaOrdine() +3821
Ordini.Salva() +114
Admin_Ordini_ordine.Save(String operazione) +1600
Admin_Ordini_ordine.Applica(Object sender, EventArgs e) +11
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) +118
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +113
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +9
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

Ho provato con:
DateTime.ParseExact(ordine["data_pagamento"].ToString(), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture)
ma nulla

Nel web.config ho impostato:
<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto:it-IT" fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" responseHeaderEncoding="utf-8" enableBestFitResponseEncoding="true" />

algraps Profilo | Junior Member

Ho una domanda:
stai cercando di visualizzare i dati o di salvare i dati?


A.G.
http://nothingnessit.wordpress.com/

svipla Profilo | Senior Member

è un update

algraps Profilo | Junior Member

prova a togliere la configurazione da webConfig.

Prova a stamparmi una data. in formato string sul post

prova ad usare il TryParse e dimmi cosa hai in out.

Ciao
Al.


A.G.
http://nothingnessit.wordpress.com/

svipla Profilo | Senior Member

Ciao
questo è il mio web.config ora:
<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto" fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" responseHeaderEncoding="utf-8" enableBestFitResponseEncoding="true" />

Se faccio così:
DateTime data1 = new DateTime();
DateTime.TryParse(checkString(ordine["data_ordine"].ToString()), out data1);
DateTime data2 = new DateTime();
DateTime.TryParse(checkString(ordine["data_pagamento"].ToString()), out data2);

data1, data2 e DateTime.Now mi restituiscono la data in dormato dd/MM/yyyy HH:mm:ss

Ma non c'è un modo che mi permetta di convertire una data indipendentemente dalla lingua del server?
Io ricordo che era possibile, ma non ricordo come.
Grazie

gsistemi Profilo | Junior Member

metti set language italian nella query prima di update

set language italian update tabella set data = '23/10/2013'
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5