Bonjour à tous,
J'ai un problème, j'ai une base de données sql server 2000 qui est composée de : auteur, etagere, genre, livre.
J'ai fait un dataset, j'utilise des dataadapter et un sqlconnection.
Mon problème vient de la table auteur, je n'arrive pas à récupérer les données de cette table pour les afficher sur mon formulaire, pourtant quand je crée un nouvel auteur par le formulaire, cela enregistre bien dans la base de données. Merci
Voici le code du menu principal :
Voici mon code pour l'auteur, celui où il y a le problème :
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 public Menuprincipal() { InitializeComponent(); //efface les lignes de l'ensemble des tables du dataset dbDs_bibliotheque1.Clear(); //connecte le dataset et la base de données dbAd_livre.Fill(dbDs_bibliotheque1, "auteur"); //pour la modification des lignes de la table auteur dbDs_bibliotheque1.auteur.RowChanged += new DataRowChangeEventHandler(auteur_RowChanged); //pour supprimer des lignes de la table auteur dbDs_bibliotheque1.auteur.RowDeleted += new DataRowChangeEventHandler(auteur_RowDeleted); } private void auteur_RowChanged(object sender, DataRowChangeEventArgs e) { //si modification et ajout if (e.Action == DataRowAction.Add || e.Action == DataRowAction.Change) { try { //mise à jour de auteur dbAd_auteur.Update(new DataRow[] { e.Row }); } catch (Exception pb) { MessageBox.Show(pb.ToString()); e.Row.RejectChanges(); } } } private void auteur_RowDeleted(object sender, DataRowChangeEventArgs e) { //si supression if (e.Action == DataRowAction.Delete) { try { //mise à jour de auteur dbAd_auteur.Update(new DataRow[] { e.Row }); } catch (Exception pb) { MessageBox.Show(pb.ToString()); e.Row.RejectChanges(); } } } private void bt_entree_livre_Click(object sender, EventArgs e) { Entreelivre fentlivre = new Entreelivre(dbDs_bibliotheque1); fentlivre.Show(); }
Voici mon code de l'étagère qui fonctionne et qui ressemble à celui de l'auteur :
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104 public partial class Entreeauteur : Form { //dataset dbDs_bibliotheque dbDs; //dataview DataView dbDv; public Entreeauteur() { InitializeComponent(); } public Entreeauteur(dbDs_bibliotheque p_dbDs) : this() { //récupère les valeurs du dataset dbDs = p_dbDs; //création d'un nouveau dataview dbDv = new DataView(dbDs.auteur); //ordre de tri dbDv.Sort = "nom ASC"; //suspend la liaison des données this.BindingContext[dbDv].SuspendBinding(); //rétablit la liaison des données this.BindingContext[dbDv].ResumeBinding(); //numéro de l'auteur this.txt_num_auteur.DataBindings.Add("Text", dbDv, "numeroauteur"); //nom de l'auteur this.txt_nom_auteur.DataBindings.Add("Text", dbDv, "nom"); //prenom de l'auteur this.txt_prenom_auteur.DataBindings.Add("Text", dbDv, "prenom"); affichePosCpt(); } private void affichePosCpt() { //total auteur string total = (this.BindingContext[dbDv].Count).ToString(); //numero position auteur string num = ((this.BindingContext[dbDv].Position) + 1).ToString(); tb_posCpt.Text = num + "/" + total; } private void bt_premier_Click(object sender, EventArgs e) { //annule la modification en cours this.BindingContext[dbDv].CancelCurrentEdit(); //se positionne au premier enregistrement this.BindingContext[dbDv].Position = 0; affichePosCpt(); } private void bt_precedent_Click(object sender, EventArgs e) { //annule la modification en cours this.BindingContext[dbDv].CancelCurrentEdit(); //se positionne à l'enregistrement précédent this.BindingContext[dbDv].Position--; affichePosCpt(); } private void bt_suivant_Click(object sender, EventArgs e) { //annule la modification en cours this.BindingContext[dbDv].CancelCurrentEdit(); //se positionne à l'enregistrement suivant this.BindingContext[dbDv].Position++; affichePosCpt(); } private void bt_dernier_Click(object sender, EventArgs e) { //annule la modification en cours this.BindingContext[dbDv].CancelCurrentEdit(); //se positionne au dernier enregistrement this.BindingContext[dbDv].Position = this.BindingContext[dbDs, dbDs.auteur.TableName].Count - 1; affichePosCpt(); } private void bt_ajout_Click(object sender, EventArgs e) { //ajout d'un nouveau auteur this.BindingContext[dbDv].AddNew(); affichePosCpt(); } private void bt_ok_Click(object sender, EventArgs e) { try { //message de dialogue if (MessageBox.Show("Voulez vous faire la modification?", "Message de confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes) { //mise à jour de l'auteur this.BindingContext[dbDv].EndCurrentEdit(); affichePosCpt(); } } catch (System.Exception pb) { MessageBox.Show(pb.Message); } } }
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 public partial class Entreeetagere : Form { //dataset dbDs_bibliotheque dbDs; //dataview DataView dbDv; public Entreeetagere() { InitializeComponent(); } public Entreeetagere(dbDs_bibliotheque p_dbDs) : this() { //récupère les valeurs du dataset dbDs = p_dbDs; //création d'un nouveau dataview dbDv = new DataView(dbDs.etagere); //ordre de tri dbDv.Sort = "libelleetagere ASC"; //suspend la liaison des données this.BindingContext[dbDv].SuspendBinding(); //rétablit la liaison des données this.BindingContext[dbDv].ResumeBinding(); //numéro de l'étagère this.txt_num_etagere.DataBindings.Add("Text", dbDv, "numeroetagere"); //libellé de l'étagère this.txt_libelle_etagere.DataBindings.Add("Text", dbDv, "libelleetagere"); affichePosCpt(); } private void affichePosCpt() { //total étagère string total = (this.BindingContext[dbDv].Count).ToString(); //numero position étagère string num = ((this.BindingContext[dbDv].Position) + 1).ToString(); tb_posCpt.Text = num + "/" + total; } private void bt_premier_Click(object sender, EventArgs e) { //annule la modification en cours this.BindingContext[dbDv].CancelCurrentEdit(); //se positionne au premier enregistrement this.BindingContext[dbDv].Position = 0; affichePosCpt(); } private void bt_precedent_Click(object sender, EventArgs e) { //annule la modification en cours this.BindingContext[dbDv].CancelCurrentEdit(); //se positionne à l'enregistrement précédent this.BindingContext[dbDv].Position--; affichePosCpt(); } private void bt_suivant_Click(object sender, EventArgs e) { //annule la modification en cours this.BindingContext[dbDv].CancelCurrentEdit(); //se positionne à l'enregistrement suivant this.BindingContext[dbDv].Position++; affichePosCpt(); } private void bt_dernier_Click(object sender, EventArgs e) { //annule la modification en cours this.BindingContext[dbDv].CancelCurrentEdit(); //se positionne au dernier enregistrement this.BindingContext[dbDv].Position = this.BindingContext[dbDs, dbDs.etagere.TableName].Count - 1; affichePosCpt(); } private void bt_ajout_Click(object sender, EventArgs e) { //ajout d'une nouvelle étagère this.BindingContext[dbDv].AddNew(); affichePosCpt(); } private void bt_ok_Click(object sender, EventArgs e) { try { //message de dialogue if (MessageBox.Show("Voulez vous faire la modification?", "Message de confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes) { //mise à jour d'étagère this.BindingContext[dbDv].EndCurrentEdit(); affichePosCpt(); } } catch (System.Exception pb) { MessageBox.Show(pb.Message); } } }
Partager