Bonjour, désolé pour le titre, je commence à avoir l'esprit qui chauffe.
Je suis sur que c'est très très con, mais je ne m'en sors pas. Voilà le souci :
J'ai une tableEt je désire faire une requête toute bête avec un petit calcul :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 /*==============================================================*/ /* Table : MP */ /*==============================================================*/ create table MP ( CODE_MP int not null auto_increment, CODE_DEVIS int not null, CODE_TYPE_MP int not null, NOM_MP varchar(50), MONTANT_MP decimal, MARGE_MP decimal, primary key (CODE_MP) );Bref, la requête fonctionne très bien, je l'ai testée soys phpmyadmin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select SUM(MONTANT_MP), SUM(MONTANT_MP * MARGE_MP) from MP where CODE_DEVIS=unentier
Mais avec vb.net, dès que le résultat n'est pas entier, l'affichage est impossible.
Je suppose que c'est le point "." faisant office de virgule sous mysql qui vient poser problème sous vb.net, sauf que je ne vois pas comment résoudre ce problème.
Voilà le code :Si "totalmpnm" et "totalmpm" sont entier, aucun souci, ils s'affichent dans les textbox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Dim totalmpm As Decimal Dim totalmpnm As Decimal Dim cnxmp As MySqlConnection cnxmp = New MySqlConnection(M_PAP.cnx) cnxmp.Open() Dim cmdmp As MySqlCommand cmdmp = cnxmp.CreateCommand() cmdmp.CommandText = "select SUM(MONTANT_MP), SUM(MONTANT_MP * MARGE_MP) from MP where CODE_DEVIS=" & M_PAP.codedevis & "" Dim drmp As MySqlDataReader drmp = cmdmp.ExecuteReader() drmp.Read() totalmpnm = drmp.GetValue(0) totalmpm = drmp.GetValue(1) cnxmp.Close() T_MP_Non.Text = totalmpnm T_MP_oui.Text = totalmpm
En revanche si l'un des deux comporte un ".", c'est à dire n'est pas entier, alors plus rien ne fonctionne.
Une idée pour régler ce problème ?
Merci d'avance
Partager