SQL + vb , la guerre des décimal
Bonjour, désolé pour le titre, je commence à avoir l'esprit qui chauffe :evil:.
Je suis sur que c'est très très con, mais je ne m'en sors pas. Voilà le souci :
J'ai une table
Code:
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)
); |
Et je désire faire une requête toute bête avec un petit calcul :
Code:
select SUM(MONTANT_MP), SUM(MONTANT_MP * MARGE_MP) from MP where CODE_DEVIS=unentier
Bref, la requête fonctionne très bien, je l'ai testée soys phpmyadmin.
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 :
Code:
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 |
Si "totalmpnm" et "totalmpm" sont entier, aucun souci, ils s'affichent dans les textbox.
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