[C#]Problème de récupération des données sur une base sql server 2000
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 :
Code:
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 pour l'auteur, celui où il y a le problème :
Code:
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);
}
}
} |
Voici mon code de l'étagère qui fonctionne et qui ressemble à celui de l'auteur :
Code:
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);
}
}
} |