VB.NET e SQL SERVER

mercoledì 07 gennaio 2009 - 12.40

mark81 Profilo | Newbie

Salve a tutti.
Sono da poco passato da access a SQL SERVER 2005 installato su un sistema operativo Windows server 2008. Il mio problema è questo: eseguo un comando di inserimento in una tabella dove ci sono dei campi con tipo di dati impostati su money. L'inserimento avviene, ma i dati da me inseriti in questi campi non sono corretti. Ad esempio, se io inserisco, con una variabile di tipo decimal, il valore preso da una textbox (es 2,7592) la variabile assume il valore (2.7592 e fino a qui tutto ok), ma nel db il valore diventa 27592. Come posso risolverlo???
Grazie a tutti in anticipo.

Teech Profilo | Expert

Usi i parametri o i concatenamenti di stringhe per creare il CommandText del SQLCommand?
Se usi il concatenamento di stringhe prova ad utilizzare i parametri... L'anomalia da te indicata sembra dovuta da un problema di cast dei valori lato .NET non lato SQL.

--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

mark81 Profilo | Newbie

Uso il contatenamento di stringhe, ora farò le dovute modifiche. Ma se uso al posto del datacommand i datatable con i dataadapter avrò lo stesso problema?
Grazie

Teech Profilo | Expert

>Uso il contatenamento di stringhe, ora farò le dovute modifiche. Ma se uso al posto del datacommand i datatable con i dataadapter avrò lo stesso >problema?
Puoi usare i DataCommand con i Parameters senza dover per forza passare ai DataAdapter.
Sicuramente l'uso dei parametri ti da maggiori garanzie riguardo ai cast dei valori.

Il tuo problema potrebbe però essere anche dovuto ad una errata formattazione della stringa che in fase di conversione viene erroneamente interpretata: questo è un altro aspetto da valutare per risolvere il tuo problema.

Per avere una stringa correttamente formattata in un campo numerico ho fatto un metodo da inserire nella KeyPress del TextBox. Questo metodo attualmente considera solo numeri e separatore decimale (unica occorrenza nella stringa). E' da sgrezzare per l'indicazione del numero massimo di decimali, per l'utilizzo del separatore di migliaia e per l'utilizzo dei numeri negativi ma per ora va bene così

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

mark81 Profilo | Newbie

Risolto con i command parameters, ma solo cambiando il provider da oledb a sqlclient.
Grazie
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