En fait, je viens de comprendre ce qui ne va pas, quel que soit le code de la classe "Ligne".
Ici :
Vous créez une ligne.
Puis vous parcourez votre GrdiView :
1 2 3
| for (int i = 0; i <= dataGridView1.Rows.Count-2 ; i++)
{
for (int j = 0; j <= 4; j++){... } |
Dans ce parcours, vous mettez à jour la ligne, la MEME ligne :
1 2 3 4 5
| li.NC = int.Parse(dataGridView1.Rows[i].Cells[j].Value.ToString());
li.codeP = int.Parse(dataGridView1.Rows[i].Cells[j].Value.ToString());
li.Qte = int.Parse(dataGridView1.Rows[i].Cells[j].Value.ToString());
li.Prix = float.Parse(dataGridView1.Rows[i].Cells[j].Value.ToString());
li.Montant = float.Parse(dataGridView1.Rows[i].Cells[j].Value.ToString()); |
Et enfin, après tout le parcourt, vous faîtes un insert dans la BDD :
l.dc.Ligne.InsertOnSubmit(li);
Autrement dit, vous n'insérez que la dernière valeur de "Ligne".
Il faudrait mettre la ligne
l.dc.Ligne.InsertOnSubmit(li);
juste après
li.Montant = float.Parse(dataGridView1.Rows[i].Cells[j].Value.ToString());
Partager