Ciao a tutti!
Sono intrippato su un problema. Immesso un numero decimale, per esempio 0,5, su una textbox devo salvarlo sul db. Solo che ho provato in svariati modi. Mi dà sempre errore su command.ExecuteNonQuery();
Che fare?
Ciao a tutti!
Sono intrippato su un problema. Immesso un numero decimale, per esempio 0,5, su una textbox devo salvarlo sul db. Solo che ho provato in svariati modi. Mi dà sempre errore su command.ExecuteNonQuery();
Che fare?
Vorresti vedere il codice?Originariamente inviato da pietro09
che codice usi?
codice://classe timesheet public string Salva(string ID_Timesheet, string ID_Dipendente, string Data_Timesheet, string Cod_Arca, string ID_Commessa, decimal Ore) { Timesheet mioTS = new Timesheet(); SqlConnection conn = new SqlConnection(); SqlCommand com = new SqlCommand(); conn.ConnectionString = "Data Source=nomecomputer\\SQLEXPRESS;Initial Catalog=database;Integrated Security=True"; com.Connection = conn; com.CommandText = "INSERT INTO Timesheet(ID_Timesheet, ID_Dipendente, Data_Timesheet, Cod_Arca, ID_Commessa, Ore) VALUES('" + ID_Timesheet + "', '" + ID_Dipendente + "', '" + Data_Timesheet + "', '" + Cod_Arca + "', '" + ID_Commessa + "', " + Ore + ")"; conn.Open(); com.ExecuteNonQuery(); conn.Close(); return "0"; } //codice c# pagina timesheet mioTS.Salva(mese, User.Identity.Name, lblLun.Text, ddlCliente1.Text, ddlCommessa1.SelectedItem.Text, decimal.Parse(txtLun1.Text));
in questa riga
ID_Commessa + "', " + Ore + ")";
prova a cambiare (ho scritto in pseudo codice, perciò correggi)
ID_Commessa + "', " + Ore.tostring().replace(",", ".") + ")";
ossia, converti ore in stringa e prova a cambiare la virgola decimale in punto. :master:
Pietro
Con la virgola mi dà il seguente problema:Originariamente inviato da pietro09
in questa riga
ID_Commessa + "', " + Ore + ")";
prova a cambiare (ho scritto in pseudo codice, perciò correggi)
ID_Commessa + "', " + Ore.tostring().replace(",", ".") + ")";
ossia, converti ore in stringa e prova a cambiare la virgola decimale in punto. :master:
"Formato della stringa di input non corretto."
e fa riferimento ad una textbox vuota (txtMar1.Text). Ho tante textbox che accettano i numeri decimali, e se sono vuote mi danno questo problema. Il bello è che prima, quando il campo Ore sul database era int, andavano bene anche le textbox vuote.. ora no. -.-codice:mioTS.Salva(mese, User.Identity.Name, lblMar.Text, ddlCliente1.Text, ddlCommessa1.SelectedItem.Text, decimal.Parse(txtMar1.Text));
Sarà perché, sulla classe, ho messo Ore come decimal anziché string (com'era prima)?
EDIT: se metto Ore tra apici oltre alle virgolette, e lo dichiaro come string mi dà il seguente errore:
"Errore durante la conversione del tipo di dati da varchar a numeric."
Da notare ancora che quando Ore sul db era int non mi dava questo errore..
usa Decimal.TryParse invece di Decimal.Parse e se la conversione fallisce mostri un bel messaggio di errore senza eseguire la query![]()
Ma decimal.TryParse è bool.Originariamente inviato da bitman
usa Decimal.TryParse invece di Decimal.Parse e se la conversione fallisce mostri un bel messaggio di errore senza eseguire la query![]()
quel booleano ti dice se la conversione ha avuto successo, il valore convertito è il secondo parametro in out
leggi la documentazione
http://msdn.microsoft.com/it-it/library/9zbda557.aspx
Ho capito. Infatti adesso funziona.Originariamente inviato da bitman
quel booleano ti dice se la conversione ha avuto successo, il valore convertito è il secondo parametro in out
leggi la documentazione
http://msdn.microsoft.com/it-it/library/9zbda557.aspx
Grazie mille!