Bonsoir à toutes et à tous!
Je travaille actuellement sur l'élaboration d'un logiciel capable de générer des devis et des factures à travers l'utilisation de dataGridView.Je dispose pour cela d'une base de données ACCESS...
Je m'interroge de plus en plus sur la possibilité d'incorporer une instruction INSERT dans une boucle for.
- -A partir d'un 1er datagridview nommé dataGridView1, j'affiche les produits que l'entreprise vends aux particulier, et cela grace à la table "SERVICES" de ma BDD. Ces produits constituent ainsi les produits que le client se voit facturer.
- -A laide d'un bouton "ajouter" j'utiliser les instructions INSERT afin d'inserer mes produits dans les tables FACTURER(NumFacture,NumService,qte)
Et avec l'aide d'autre tables, j'établi une facture comprenant les services vendus et autres choses diverses et variées.
En fait ce que je voudrais faire est la chose suivante:
a partir d'un deuxième datagridview comprenant les produits séléctionnés dans le datagridview1, je cherche a enregistrer les produits dans ma table facturer grace a une boucle for qui parcours mon datagridview2.
voici le code:
Le résultat est que cela ne fait rien du tout... Je me creuse la tête depuis plusieurs heures sans pouvoir trouver la solution...
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
21 for (i = 0; i < (dataGridView2.Rows.Count - 1); i++) { service = Convert.ToString(dataGridView2[1, i].Value);//Nom du produit qte = Convert.ToInt16(dataGridView2[3, i].Value);//qté commandée OleDbCommand sel = new OleDbCommand("SELECT NumService FROM SERVICES WHERE NomService='" + service + "'", co); ns = Convert.ToInt16(sel.ExecuteScalar());//récupération du Numéro de produit correspondant au nom du produit correspondant OleDbCommand insFacrer = new OleDbCommand("INSERT INTO FACTURER VALUES(@nf,@ns,@qte)", co); insFacrer.Parameters.Add("@nf", OleDbType.Integer);//Numéro de facture insFacrer.Parameters.Add("@ns", OleDbType.Integer);//Numéro de service insFacrer.Parameters.Add("@qte", OleDbType.Integer);//quantité facturée pour le client insFacrer.Parameters["@nf"].Value = fact2; insFacrer.Parameters["@ns"].Value = ns; insFacrer.Parameters["@qte"].Value = qte; insFacrer.ExecuteNonQuery(); Da.InsertCommand = insFacrer; co.Close(); }
Peut-être est-ce un problème d'instruction INSERT, mais je ne vois pas où il pourrait-être...
Quand a la possibilité d'utiliser un foreach, je n'est pas réussi a bien me servir de cette expression...
En espérant une réponse rapide,
je vous remercie d'avance.
Partager