riko77
Messages postés4Date d'inscriptionmercredi 17 février 2010StatutMembreDernière intervention24 février 2010
-
18 févr. 2010 à 19:45
riko77
Messages postés4Date d'inscriptionmercredi 17 février 2010StatutMembreDernière intervention24 février 2010
-
24 févr. 2010 à 22:21
Bonjour je développe une petite appli en C#,
je dois faire une somme sur des colonnes "montant" sur 3 tables dans acces et récupérer la somme dans un textBox.
Au préalable je me connecte à la BD, jusque là pas de problème...
int n;
OleDBConnection oConn;
OleDbCommand oCmd;
oConn.ConnectionString="...."; //Chaine de connection
oConn.Open();
oCmd= oConn.CreateCommand();
oCmd.CommandText="SELECT Montant sum Montant FROM Teletransmission,Cheque,Espece Where date BETWEEN.........etc".
n=oCmd.ExecuteNonQuery();
Ensuite je veux récupérer le résultat dans un textBox...
Quelqu'un peut-il me donner le code?
Merci
riko77
Messages postés4Date d'inscriptionmercredi 17 février 2010StatutMembreDernière intervention24 février 2010 24 févr. 2010 à 22:21
Bon çà y est je me suis inspiré de tes conseilles,par contre j'ai conservé le type "object", et j'ai modifié le type de l'attribut "montant" dans acces, je l'ai passé en format "texte".
riko77
Messages postés4Date d'inscriptionmercredi 17 février 2010StatutMembreDernière intervention24 février 2010 23 févr. 2010 à 21:20
Ok désolé pour le retard....
Tu as parfaitement raison la requête fonctionne mais j'ai un autre soucis, je voudrais caster un type "object" en float quelqu'un a-t-il la réponse?
J'ai indiqué par un commentaire l'endroit où çà coince sinon le reste est opé.
Bon mon code est un peu dégueu mais je débute ;-)
voici mon code:
//on choisi la requete sql
this.SqlSearch = "SELECT * FROM Teletransmission WHERE Date BETWEEN " + dt1 + "and "+ dt2 + "";
this.SqlSearch1 = "SELECT * FROM Cheque WHERE Date BETWEEN " + dt1 + "and " + dt2 + "";
this.SqlSearch2 = "SELECT * FROM Espece WHERE Date BETWEEN " + dt1 + "and " + dt2 + "";
#region récupération de la somme des montants
//on ouvre la connection
try
{
this.Conn.Open();
OleDbCommand oCmd1 = Conn.CreateCommand();
OleDbCommand oCmd2 = Conn.CreateCommand();
OleDbCommand oCmd3 = Conn.CreateCommand();
//string montantTotal;
string req1 = "SELECT SUM (Montant) FROM Teletransmission WHERE date BETWEEN " + dt1 + "and " + dt2 + "";
string req2 = "SELECT SUM (Montant) FROM Cheque WHERE date BETWEEN " + dt1 + "and " + dt2 + "";
string req3 = "SELECT SUM (Montant) FROM Espece WHERE date BETWEEN " + dt1 + "and " + dt2 + "";
Mais çà génère une erreur "cast non valide". j'ai converti en double car il s'agit de nb à virgule. Je "tape" dans une base access, l'attribut "montant" est de type monétaire avec un format "nombre général".
J'avoues que je suis un peu coinçosse là.