Bonjour tout le monde,
Mon application est lié à une base SqlServer2000.
Dans mon application j'ai un dataGrid qui se remplit de la manière suivante si des articles(pieces_detachée) sont existant dans la base pour un numéro d'intervention sélectionné auparavant :
Mais le dataGrid peut se remplir dans l'application de la manière suivante (à partir d'une combo correspondant au désignation d'article.):
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 string PieceDetachee = ("SELECT PD_DESIGNART as Désignation, PC_QTECONSO as quantité, PC_PU1MOMEN as PU_HT, PC_PU2MOMEN as PU_TTC FROM PIECE_DETACHEE, PIECE_CONSOMMEE WHERE PIECE_DETACHEE.PD_CODART = PIECE_CONSOMMEE.PC_CODART AND PC_NUMINTER = '" + NumInter.Text + "'"); connection = new SqlConnection("Data Source=SNCK96400031;Initial Catalog=DistribInfo;Integrated Security=SSPI"); connection.Open(); try { SqlDataAdapter dataAdapter2 = new SqlDataAdapter(PieceDetachee, connection); dataAdapter2.Fill(ds2,"PieceDetachee"); dataGrid3.DataSource = ds2; dataGrid3.DataMember = "PieceDetachee"; } catch(Exception ex) { MessageBox.Show(ex.ToString()); } finally { connection.Close(); }
Mon problème est le suivant : imaginon que des articles existe dans la base, donc sans problème il s'affiche dans le dataGrid ensuite, je décide de rajouter un nouveau article via la combo alors ça efface ceux qui été affiché auparavant dans le dataGrid.
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
43 // Affiche les noms des colonnes private void SuiviIntervention_Load(object sender, System.EventArgs e) { dt = new DataTable(); dt.Columns.Add("Désignation"); dt.Columns.Add("quantité"); dt.Columns.Add("PU_HT"); dt.Columns.Add("PU_TTC"); dt.Columns.Add("Remise"); } private void DesArt_SelectedIndexChanged(object sender, System.EventArgs e) // Si l'article sélectionné existe alors message d'erreur { if(liste.Contains(DesArt.Text)) { MessageBox.Show("déja existant"); } } private void Qte_TextChanged(object sender, System.EventArgs e) // remplissage du dataGrid { try { DataRow dr = dt.NewRow(); dr[0] = DesArt.Text; dr[1] = Qte.Text; dr[2] = label17.Text; dr[3] = label18.Text; dt.Rows.Add(dr); dataGrid3.DataSource = dt; liste.Add(DesArt.Text); } catch(Exception ex) { MessageBox.Show(ex.ToString()); } finally { connection.Close(); } }
Comment je peux faire en sorte que les nouveaux articles s'affiche à la suite de ceux existant??
Tout en sachant que je ne veux pas avoir 2 fois le même article dans le dataGrid vu qu'il y a déja une colonne "quantité"!!
Merci d'avance!!
Partager