Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
String.format e SQLClient.......risultato diverso tra seven e Vista
venerdì 11 marzo 2011 - 17.48
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
dompa72
Profilo
| Senior Member
245
messaggi | Data Invio:
ven 11 mar 2011 - 17:48
Ho un problema molto banale ma che mi fa impazzire.
Si tratta di comportamenti diversi del string.format se utilizzato con il S.O. 7 (Seven) invece di Vista/XP.
La stringa strDataReg = "convert (DateTime, '" + String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now) + "', 120)";
su seven mi ritorna il separatore dell'orario con ":", su Vista e XP ".".
Per Correggere il bug sono costretto ad inserire questo replace "strDataReg = strDataReg.Replace(".", ":");"
Altra cosa anomala è che se inserisco in una query direttamente un DataTime da inviare a SQL Server su seven non ritorna errori su Vista/Xp (giustamente) mi da l'errore
Sto sviluppando con C# di VS2008
Spero che qualcuno riesce a risolvere questo enigma
Grazie a tutti
jackk87
Profilo
| Junior Member
106
messaggi | Data Invio:
ven 11 mar 2011 - 19:05
>Ho un problema molto banale ma che mi fa impazzire.
>Si tratta di comportamenti diversi del string.format se utilizzato
>con il S.O. 7 (Seven) invece di Vista/XP.
>La stringa strDataReg = "convert (DateTime, '" + String.Format("{0:yyyy-MM-dd
>HH:mm:ss}", DateTime.Now) + "', 120)";
>
>su seven mi ritorna il separatore dell'orario con ":", su Vista
>e XP ".".
>Per Correggere il bug sono costretto ad inserire questo replace
>"strDataReg = strDataReg.Replace(".", ":");"
>
>Altra cosa anomala è che se inserisco in una query direttamente
>un DataTime da inviare a SQL Server su seven non ritorna errori
>su Vista/Xp (giustamente) mi da l'errore
>
>Sto sviluppando con C# di VS2008
>
>Spero che qualcuno riesce a risolvere questo enigma
Ciao Dompa andando in pannello di controllo -> Opzioni internazionali e della lingua, sicuramente avrai il separatore dell'ora su xp/vista = "." e su seven =":" questo perchè è stato impostato come predefinito e quindi il sistema va a leggere li.
In precedenza ho avuto problemi riguardo il separatore delle migliaia e ho risolto con il namespace System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator e ho dato un'occhiata al namespace e ci sono delle funzioni interessanti cioè:
System.Globalization.DateTimeFormatInfo.CurrentInfo.TimeSeparator.ToString 'che restituisce il separatore dell'ora impostato nel sistema
System.Globalization.DateTimeFormatInfo.InvariantInfo.TimeSeparator.ToString 'che restituisce il separatore dell'ora come predefinito su ":"
puoi utilizzare questo namespace e adattarlo per il tuo problema
per quanto riguarda la funzione DataTime utilizza sempre il separatore impostato nel sistema
>
>Grazie a tutti
spero di esserti stato d'aiuto
ciao
dompa72
Profilo
| Senior Member
245
messaggi | Data Invio:
sab 12 mar 2011 - 18:04
String.Format("{0:yyyy-MM-dd HH:mm:ss}", Data)
in teoria la stringa di formattazione deve (sempre in teoria) seguire il formato imposto dallo sviluppatore.
Questo non succede in seven.
Ho controllato le impostazioni internazionali e sono identiche a quell di Vista.
Inoltre nei miei sorgenti setto il namespace System.Globalization, questo perchè nella mia azienda ho PC installati da Americani, Inglesi ed Italiani (fornitori di impianti).
Grazie per la risposta, ma il dilemma continua
Torna su
Stanze Forum
Elenco Threads
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 !