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
Problema creazione Fatture e gestionale per un ristorante
domenica 09 febbraio 2014 - 12.59
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 4.0
|
Windows 7
|
Visual Studio Express
Foga92
Profilo
| Newbie
10
messaggi | Data Invio:
dom 9 feb 2014 - 12:59
Ciao a tutti sperando che qualcuno riesca ad aiutarmi espongo il mio problema cercando di essere il più rapido possibile.
Utilizzo VS2012 EXPRESS con .NET framework 4.5.
Sto creando un programma in c# che permette di fare le seguenti cose:
Stampare e memorizzare fatture e ricevute sia pagate che non, mantenere un archivio delle stesse consentendone la stampa in un secondo momento.
Gestire un archivio dei clienti con tutte le informazioni (es. ragione soc. partita iva ecc)
Il funzionamento è il seguente:
Tramite una text box inserisco un tavolo poi se non è già presente e il tavolo risulta valido (casella non vuota e numero inserito) procede a inserire il tavolo in una tabella listatavoli in un database SQL (.mdf di visual studio)
Una volta dato INVIO se tutto va bene ci si sposta in una casella Tasto nella quale è possibile tramite la pressione di un tasto inserire una pietanza completa di prezzo e quantità in una tabella AttesaSaldo che verrà visualizzata in un DGV:
I tasti sono stati programmati tramite una sezione apposita del programma nella quale si manipolano i dati della tabella listatasti nella quale sono riportati i valori (Tasto, Descrizione, Prezzo). Ovviamente per incrementare le quantità è possibile schiacciare più volte un tasto corrispondente e si incrementa il prezzo e la quantità.
Il mio problema sorge nel momento in cui noi proviamo ad incrementare la quantità e il prezzo di un articolo che ha un prezzo con una virgola ES: 1 <nome descrizione> 2,5 l'operazione va a buon fine fino alla seconda volta che si preme poi da il seguente errore:
Eccezione non gestita di tipo 'System.Data.SqlClient.SqlException' in System.Data.dll
Informazioni aggiuntive: Error converting data type varchar to float.
Spiegando brevemente il funzionamento il programma tramite un comando SELECT prende il valore del prezzo della listatasti e lo somma al prezzo che ha lo stesso articolo in AttesaSaldo tutte le variabili sono di tipo Double invece i campi della tabella nel database sono Float (Ho provato a variare queste ultime in vari modi ma il risultato non cambia se non è un errore è un'altro.). una volta aver ricevuto il valore del prezzo finale e aver aggiunto 1 alla quantità, tramite il comando UPDATE aggiorna il record e di conseguenza anche la DGV con il prezzo e la quantità nuova.
Ora ciò che non riesco a capire è: Perchè fino alla seconda volta funziona e alla terza da l'errore? (esempio. se premo 2 volte il tasto 'x' che corrisponde ad una descrizione e ad un prezzo <descizione> 2,5 alla seconda volta tutto va bene aumenta la quantità a 2 e imposta il prezzo a 5, ma quando premo per la terza volta mi esce l'eccezione. Ho provato anche a seguire i valori delle variabili e sono giusti al momento del comando ExecuteNonQuery() le mie variabile prezzo e la quantità hanno valori 3 e 7,5.
Spero che qualcuno riesca ad aiutarmi che ci sto sbattendo la testa da giorni
Un secondo e più semplice problema è il seguente:
Ho impostato dei controlli sulla prima casella (dove si inserisce il tavolo) che valuta se il tavolo è un numero valido per esempio non una lettera e non una casella vuota, ed ho impostato una messagebox con un semplice avviso il mio problema è che ho impostato l'evento keyup con ENTER per confermare l'inserimento del tavolo e se il valore non è valido e quindi compare la messagebox non è possibile schiacciare enter perchè continua a verificare la casella e a far comparire la messagebox all'infinito a meno che non si prema "ESC".
Grazie a mille per il volenteroso che ha voglia di aiutarmi
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
dom 9 feb 2014 - 20:05
verifica le virgole,
che vengono concertite in punti o viceversa.
CIAo
Riccardo D'Aria
Foga92
Profilo
| Newbie
10
messaggi | Data Invio:
lun 10 feb 2014 - 12:53
Si effettivamente hai ragione. Nel database i prezzi sono con le virgole che vengono poi trasformate in punti. Piccola curiosità come posso farle tornare virgole al momento dell'inserimento nella query?
Ho provato a trasformare il tutto in stringa usare poi il .Replace(".",",") ma poi riconvertendolo in double la cosa torna come prima ovviamente.
Stavo pensando non c'è un comando da utilizzare con il double tipo replace?
Ho visto che nel tipo di dato del database c'è anche money e smallmoney qesti come funzionano esattamente? ho visto che hanno 3 zeri. magari con una piccola modifica al database sistemo le cose.
Sai anche per caso come risolvere il problemino che ho scritto nell'ultimo paragrafo?
Grazie per la risposta
Foga92
Profilo
| Newbie
10
messaggi | Data Invio:
lun 10 feb 2014 - 13:01
Ho risolto impostando tutto su decimal(18,2)
...
Ora chiedo qualcuno riesce ad aiutarmi sul mio ultimo problema descritto?
se premo enter per confermare la messagebox di errore mi ricompare e così via
Grazie
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 11 feb 2014 - 07:04
Prego.
Intanto chiudi questo post cliccando su accetta.
Poi ne apri un altro specificando meglio la questione.
CIAO
Riccardo D'Aria
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 !