Convertir en float

Signaler
Messages postés
23
Date d'inscription
dimanche 20 avril 2008
Statut
Membre
Dernière intervention
25 février 2011
-
Messages postés
363
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
20 avril 2010
-
salut,

Dans mon application je dois insérer des données dans la base et d'introduit ces données à travers des TextBox or il ya des donnés de type float (Moyenne) dans la base pour cela j'ai fait une conversion du string en float (Du text introduit dans le TextBox en float).
Le probleme c'est qu'il n'accepte pas tous ce qui est aprés virgule.
Exemple: si je met Moyenne = 12,33=====> Erreur apparait (Syntax incorrect vers 33)

si j'enlève le 33 c à d Moyenne = 12 code est accepté et l'insertion se fait avec succès.
A voir également:

10 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
Quel est ton code ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
23
Date d'inscription
dimanche 20 avril 2008
Statut
Membre
Dernière intervention
25 février 2011

ouvrir()
qtecont.Text = (Integer.Parse(qteref.Text) + Integer.Parse(qteaccep.Text))
pourcen_ret.Text = (Integer.Parse(qteref.Text) / (qtecont.Text) * 100)
total_f.Text = (Integer.Parse(Combval.SelectedItem) + Integer.Parse(total.Text))
total.Text = (Integer.Parse(total_f.Text))
pourcen_f.Text = (Integer.Parse(total_f.Text) / (qtecont.Text) * 100)
' If DateTime.Text <> Nothing And modele.Text <> Nothing And ComboBox3.Text <> Nothing And ComboBox1.Text <> Nothing And combheur.Text <> Nothing And Combval.Text <> Nothing And qteref.Text <> Nothing And qteaccep.Text <> Nothing Then
insert = "Insert into DETAIL_CONTR_FINALE (date,code_ret_f,modele,code_f,qte_ref,qte_accept,heure,nbre_ret,qte_contr,total_f,pourcentage_ret) values ('" & DateTime.Text & "','" & ComboBox1.Text & "','" & modele.Text & "','" & ComboBox3.Text & "','" & qteref.Text & "','" & qteaccep.Text & "','" & combheur.Text & "','" & Combval.Text & "','" & qtecont.Text & "','" & total_f.Text & "','" & pourcen_ret.Text & "') "
Mycommand.CommandType = CommandType.Text
Mycommand.CommandText = insert
Mycommand.ExecuteReader()

' Else
' ComboBox1.Text "" : ComboBox3.Text "" : DateTime.Text = "" : modele.Text = "" : combheur.Text = "" : Combval.Text = "" : total_f.Text = "" : pourcen_f.Text = "" : qteref.Text = "" : qteaccep.Text = "" : qtecont.Text = "" : pourcen_ret.Text = ""
'End If
MsgBox("votre enregistrement est valide")


Call fermer()


voila mon code.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
Pourquoi repasser par les textbox ?

total.Text = (Integer.Parse(total_f.Text))



Quel est le textbox et le champ qui est incriminé ? (celui en Float)

dans ta requete, je ne trouve pas normal que tous tes champ soient encadrés de '

il ne faut en mettre que pour les champs de type Texte ...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
23
Date d'inscription
dimanche 20 avril 2008
Statut
Membre
Dernière intervention
25 février 2011

je vais enlevé les ' puis je fais un test.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
trois cas a considérer spécifiquement :


les champs texte, a delimiter par des '

les champs date a delimiter par des # et a formatter en yyyy-mm-dd

les champs numeriques, sans délimiteurs, et sous cette forme :
1234.33

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
23
Date d'inscription
dimanche 20 avril 2008
Statut
Membre
Dernière intervention
25 février 2011

ok merci bien
Messages postés
23
Date d'inscription
dimanche 20 avril 2008
Statut
Membre
Dernière intervention
25 février 2011

salut,

j'ai rencontré 2 problèmes.
c'est l'enregistrement dans ma base de données d'une date qui est dans le "DateTimePicker" et un champ "textBox" de type float qui s'appelle pourcen_ret qui le le résultat de deux autres textBox :
(pourcen_ret.Text = (Integer.Parse(qteref.Text) / (qtecont.Text) * 100))
j'espére que tu me comprends :).
Messages postés
363
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
20 avril 2010
3
pour la date, tu peux utiliser les quotes et le format année mois jour sans séparateur :

"'" & DateTime.Value.ToString("yyyyMMdd") & "'"

pour le pourcen_ret je pense que ca vient du texte affiché, où la virgule est représenté par le caractère "," alors que sql s'attend au caractère "."

donc pourcen_ret.Text.Replace(",", ".")
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
pourcen_ret.Text.Replace(",", ".")

comme c'est propre, tiens !

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
363
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
20 avril 2010
3
c'est vrai, mais bon vu la gueule de la requête ^^ on est pas à ca prêt

faudrait faire une requête paramétrée, ou mieux une procédure stockée