najieme
Messages postés6Date d'inscriptionmardi 3 mars 2009StatutMembreDernière intervention22 mai 2009
-
29 avril 2009 à 12:03
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
29 avril 2009 à 22:58
Bonjour tout le monde!
Comme nous somme débutant en dotnet; nous avons du problème avec la conversion string to decimal si quelqu'un peut nous aider!
On utilise le langage C#(ASP.NET) et MySql comme SGBD et nous sommes entrain de créer une application web.
Voici le probème: Nous avons un champ du type decimal;
I/ Si la valeur contient du virgule et qu'on clique sur un bouton sauver(enregistrement dans la base MySql) on a l'erreur suivante(ERREUR N°1]):
1/*ERREUR N°1*/
#42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00,Type_Payement='CHECK',Specif_Payement='',DateTo_Finance='20/05/2009'where Pur' at line 1
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Exception: #42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00,Type_Payement='CHECK',Specif_Payement='',DateTo_Finance='20/05/2009'where Pur' at line 1Source Error:
Line 1117: catch (Exception e)
Line 1118: {
Line 1119: throw new Exception(e.Message);
Line 1120: }
Line 1121: finally
/*--------------------------------------------------------------------------------------------*/
II/Comme essais, si la valeur est separée par du point au lieu du virgule on a l'erreur N°2 suivante:
2/* ERREUR N°2 */
Server Error in '/Website' Application.
--------------------------------------------------------------------------------Input string was not in a correct format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.FormatException: Input string was not in a correct format.
Source Error:
Line 68: stp.amount = decimal.Parse(form_Amount.Text);
Qu'est ce que nous devons faire? Merci beaucoup!
A voir également:
String to decimal c#
Convert string to decimal c# - Meilleures réponses
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 29 avril 2009 à 14:49
Pour le 2), essaie Convert.ToDecimal(string input);
normalement, ça ne change rien, mais c'est plutôt ce dont j'ai habitude.
Pour le 1) essaie
- Soit de mettre des quotes autour de ton décimal (je ne sais plus comment SQL récupère les nombres à virgule).
- Soit d'utiliser _amount.ToString().Replace(",", ".") (très certainement nécessaire)
- Soit les 2
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 29 avril 2009 à 12:28
Salut
Ton erreur 1. est due à une erreur de syntaxe dans ta requête SQL. Si tu ne nous montres pas la requête entière, on aura du mal à t'aider.
Ton erreur 2. est due, comme l'indique le message, à un problème de format dans ton string d'entrée. Soit il est vide, soit il y a des caractères autres que des chiffres, soit tu as mis un point à la place d'une virgule (ou peut-être l'inverse, je ne suis pas sûr de moi).
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
najieme
Messages postés6Date d'inscriptionmardi 3 mars 2009StatutMembreDernière intervention22 mai 2009 29 avril 2009 à 13:14
Pour l'erreur N°1: si on insere à la bases des valeurs autre que le decimal ca marche bien mais c'est ce decimal le probème!
voici la requete sql:
public
MySqlConnection conn =
new
MySqlConnection(
"Data Source=localhost;Initial Catalog=nom de base;User ID=root;password=mot de passe");
MySqlCommand cmd =
new
MySqlCommand();
try{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = query;
cmd.ExecuteNonQuery();
}
catch (
Exception e){
//throw new Exception(e.Message);}
finally{
conn.Close();
}
}
Et pour l'erreur N°2: Nous n'avons pas mis d'autre caracter que la virgule mais il n'accepte pas. Est que decimal.parse() ne convertit pas stringTodecimal ou est ce qu'on devrait ajouter quelque chose?
Merci!