IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#]Problème de récupération des données sur une base sql server 2000


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut [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 : 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 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
    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 : 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);
                }
            }
        }

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 82
    Points : 60
    Points
    60
    Par défaut
    tu veux rentrer des données dans un tableau dans des pages web ou appli local ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    C'est pour une appli locale qui sera peut-être présentée en PTI à l'oral

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    Par contre, j'ai essayé d'utiliser une autre table dans le code où j'avais mis la table auteur, et cela fonctionne, je ne vois pas d'où peut venir l'erreur car j'ai vérifié le dataadapter et il prends la bonne connexion, et j'ai même fait un aperçu des données sur le dataadapteur, et elles s'affichent correctement.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    C'est bon, j'ai trouvé l'erreur, c'était une erreur de copier coller, j'avais pas vu que je n'avais pas modifié le nom du dataadapter pour auteur dans l'initialisation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Enregistrer des données dans une base sql server CE
    Par hugnka dans le forum VB.NET
    Réponses: 11
    Dernier message: 18/12/2012, 15h47
  2. Réponses: 4
    Dernier message: 28/03/2012, 10h50
  3. [WD9] Traitement des données d'une base SQL Server
    Par infhaddar dans le forum WinDev
    Réponses: 4
    Dernier message: 12/04/2010, 15h34
  4. Export des données d'une base SQL Server 2000 SP3
    Par zanyth dans le forum Administration
    Réponses: 5
    Dernier message: 25/03/2009, 17h18
  5. Problème de récupération de données d'une base SQL sous Excel en VBA
    Par seba57_r dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/11/2007, 18h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo