SQL Server 2005 Express e decimal

giovedì 03 marzo 2011 - 21.12
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Visual Studio 2008  |  SQL Server Express

Andrea9 Profilo | Newbie

Ciao a tutti,

oggi ho ricevuto un errore su una applicazione ASP.NET ed ho capito da cosa deriva ma non so come fare.

Nel database ho numerosi campi decimal. Se nelle query di inserimento passo valori con il punto come separatore decimale è tutto ok, se passo invece la virgola ricevo un errore (impossibile la conversione).

Se guardo sulle tabelle inSQL Server i campi decimal però sono mostrati con la virgola.

Di conseguenza quando nell'applicazione riapro i valori salvati in precedenza mi vengono inseriti con la virgola e quindi salvando di nuovo vado in errore (perchè passo la virgola come separatore).


Perchè SQLServer accetta solo il punto e restituisce la virgola come separatore decimale?

grazie a tutti

lbenaglia Profilo | Guru

>Perchè SQLServer accetta solo il punto e restituisce la virgola
>come separatore decimale?

Perché il punto è l'unico carattere ammesso come separatore decimale, mentre in lettura se non ricordo male ASP.NET legge l'attibuto culture presente nell'elemento globalization nel web.config (ma ti conviene chiedere sulla stanza dedicata) che nel tuo caso sarà probabilmente valorizzato a "it-IT" ed esegue una formattazione del valore:
http://msdn.microsoft.com/en-us/library/hy4kkhe0.aspx

>grazie a tutti
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

ma_di Profilo | Junior Member

Stavo rispondendo ad Andrea ma Lorenzo (che saluto cordialmente) mi ha preceduto.
Pongo un'altra domanda, che forse però necessita di un nuovo thread ( se è così lo riposto).
Come mai se apro una tabella contenente delle date con Management Studio vedo le medesime in formato italiano mentre se scrivo una query agendo su New Query vedo le date in aaaa-mm-gg ?

Grazie a tutti.

lbenaglia Profilo | Guru

>Stavo rispondendo ad Andrea ma Lorenzo (che saluto cordialmente)
>mi ha preceduto.
>Pongo un'altra domanda, che forse però necessita di un nuovo
>thread ( se è così lo riposto).
>Come mai se apro una tabella contenente delle date con Management
>Studio vedo le medesime in formato italiano mentre se scrivo
>una query agendo su New Query vedo le date in aaaa-mm-gg ?

Ciao,

Le informazioni datetime sono memorizzate in forma numerica, quindi per definizione non hanno formattazione.
Le applicazioni client eseguono dei cast e delle formattazioni per rendere "questi numeri" in un formato umanamente comprensibile.

Se sei interessato all'argomento puoi leggere questo splendido articolo di Tibor:
http://www.karaszi.com/SQLServer/info_datetime.asp

>Grazie a tutti.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Andrea9 Profilo | Newbie

Grazie, dipende effettivamente da "globalization".

grazie ancora,

Andrea
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5