Bonjour à tous,
Tout d'abord permettez moi de saluer les esprits dévoués qui prennent de leur temps pour venir en aide à la cause néophyte et autres sujets relatifs aux questions "stupides" découlant nécessairement de tout un chacun lorsque nos neurones se connectent entre elles via un dataset pour tenter de pondre une ou deux lignes de codes. Bravo et merci à vous tous.
Maintenant j'en viens à mon problème...
Je développe un p'tit logiciel de gestion de passage de grades pour une association sportive. J'en suis à l'étape d'enregistrement des candidats (dont j'extrais les info d'un XML via un dataset) présents dans une datagridview (lié au dataset de mon XML donc) et dont je sélectionne les lignes vers un autre datagridview (lié à rien du tout).
Là se pose le problème suivant. Je suis parvenu tant bien que mal à remplir le DGV des candidats mais je n'arrive pas à 'sauvegarder' tout ça dans un fichier externe (via un dataset donc).
Je vous colle mon code. Je suis ouvert à toute critique (préparez les tomates...).
Bien à vous
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 namespace WindowsFormsApplication1 { public partial class newPassage : Form { private DataSet ds; //déclaration du dataset int nb_cand = 0; //nombre de candidats public newPassage() { InitializeComponent(); } public DataSet DonneeSource //on réutilise le dataset de la Form1 { set // on set la valeur reçue de Menu (autrement dit le dataset) et on le lie au dataset de newPassage précédemment crée { ds = value; } } private void newPassage_Load(object sender, EventArgs e) { Btn_Ajouter.Enabled = false; //désactivation du bouton enovyer tant qu'une ligne ne sera pas sélectionnée lbl_tot_cand.Text = String.Empty; int i = ds.Tables["Membre"].Rows.Count; // nombre d'éléments du tableau dans le dataset lbl_total.Text = i.ToString(); // affichage du label de total BindingSource bSource = new BindingSource(); bSource.DataSource = ds.Tables["Membre"]; dgv1.DataSource = bSource; dgv1e.Columns["Grade"].Width = 40; // taille colonne dgv1.Columns["Sexe"].Width = 35; dgv1.ClearSelection(); // déselection de la grille foreach (DataGridViewColumn c1 in dgv1.Columns) { DataGridViewColumn c2 = c1.Clone() as DataGridViewColumn; dgv2.Columns.Add(c2); //remplissage des colonnes du 2ème dgv } } private void Btn_Ajouter_Click(object sender, EventArgs e) { foreach (DataGridViewRow row in dgv1.SelectedRows) // parcourt du datagrid ligne par ligne { try { if (row.IsNewRow) //si la ligne est la ligne vide tout en bas du datagrid MessageBox.Show("Elle est vide ta foutue ligne.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Stop); else //sinon on est bien, on continue { nb_cand++; // incrément du nombre de candidats lbl_tot_cand.Text = nb_cand.ToString(); // affichage du nombre de candidat DataGridViewRow r2 = dgv1.Rows[0].Clone() as DataGridViewRow; int i = 0; foreach (DataGridViewCell cell in row.Cells) { r2.Cells[i].Value = cell.Value; i++; } dgv2.Rows.Add(r2); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void dgv1_CellContentClick(object sender, DataGridViewCellEventArgs e) { Btn_Ajouter.Enabled = true; } } }
Partager