bonjour
j'ai un forms qui contient une datagriedview qui va être remplit par un clique sur bouton. ensuite lorsque je fait une modification dans une cellule de cette datagried, un calcul sera fait est une autre cellule va être modifiée avec la nouvelle valeur
pour ce faire j'ai utiliser la méthodemais il y a une erreur qui s'affiche lorsque je clique sur le bouton responsable de charger le forms qui contient le datagriedCellValueChanged
voici le code du forms:
l'erreur s'affiche lorsque je clique sur le bouton responsable de charger le forms qui contient la datagried :
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 private void button2_Click(object sender, EventArgs e) { mcon.Open(); string m = " select * from recouvrement.etat"; mcd = new MySqlCommand(m, mcon); MyReader = mcd.ExecuteReader(); if (MyReader.HasRows) { while (MyReader.Read()) { DataGridConstater.Rows.Add(MyReader.GetString(8), MyReader.GetString(6), MyReader.GetString(4), MyReader.GetString(2), MyReader.GetString(3)); } } mcon.Close(); } public void DataGridConstater_CellValueChanged(object sender, DataGridViewCellEventArgs e) { mcon.Open(); if (e.ColumnIndex == 2) { m = "select MAX(PU) from recouvrement.prix_unitaire where date <'" + DataGridConstater.Rows[e.RowIndex].Cells["DatExigibl"].Value + "' "; mcd = new MySqlCommand(m, mcon); MyReader = mcd.ExecuteReader(); MyReader.Read(); int PU_avant = MyReader.GetInt32(1); string date_avant = MyReader.GetString(0); double a = Convert.ToDouble(DataGridConstater.Rows[e.RowIndex].Cells["Quantity Sold"].Value); double b = Convert.ToDouble(DataGridConstater.Rows[e.RowIndex].Cells["Unit Price"].Value); DataGridConstater.Rows[e.RowIndex].Cells[5].Value = (PU_avant*a*b).ToString("0.00"); } mcon.Close(); }
sur la requete :L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
Nom du paramètre : indexje me trouve bloquée l'erreur indique que l'index et -1 car la datagried est vide parce que l'application ne m'a pas permis d'ouvrir le forms pour remplir le datagried.m = "select MAX(PU) from recouvrement.prix_unitaire where date <'" + DataGridConstater.Rows[e.RowIndex].Cells["DatExigibl"].Value + "' ";
merci d'avance pour vos aide
Partager