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

ASP.NET Discussion :

Lecteur enregistrements bdd


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut Lecteur enregistrements bdd
    Bonjour,
    Je suis en train de développer une appli web en C# avec un "lecteur" d'enregistrements de base de données.
    J'ai une base sql server d'où je récupère les enregistrements via un dataset et un Arraylist.Cette base pour exemple possède 3 colonnes(nom,prénom et adresse)Par contre, j'aimerais qu'en appuyant sur les boutons droite ou gauche du lecteur, les enregistrements s'affichent l'un à la suite de l'autre...
    Pour l'instant, je récupère donc ces enregistrements, mais je n'arrive pas à les faire afficher.

    ds = mon DataSet
    liste = mon ArrayList

    Mon code :

    Ici, j'affiche juste les premiers nom,prénom et adresse au démarrage.

    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
    protected void affiche()
            {
                SqlConnection conn;    
                string SQL= "SELECT [nom],[prenom],[adresse] FROM cust"; 
                conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename="+
                "'C:\\Documents and Settings\\Administrateur\\Mes documents\\Visual Studio"+
                " 2008\\Projects\\testClef\\testClef\\App_Data\\base.mdf';Integrated Security"+
                "=True;Connect Timeout=30;User Instance=True");
                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.SelectCommand = new SqlCommand(SQL, conn);        
                adapter.Fill(ds);          
                txtNom.Text = Convert.ToString(ds.Tables[0].Rows[0][0]);
                txtPrenom.Text = Convert.ToString(ds.Tables[0].Rows[0][1]);
                txtAdresse.Text = Convert.ToString(ds.Tables[0].Rows[0][2]);
     
                lbEnr.Text = Convert.ToString(ds.Tables[0].Rows.Count);
     
            }
    Là je cherche donc à récupérer mes enregistrements, et les visionner un par un en appuyant à chaque fois sur le bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected void btD_Click(object sender, EventArgs e)
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    liste.Add(dr);
                }
     
            }
    J'ai récupéré toutes mes lignes, mais j'ai un problème pour les faire afficher dans mes textbox...

    Si quelqu'un à une idée...
    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Utilise le data binding :
    - Sur ta form, ajoute un composant BindingSource, mets ton DataSet comme DataSource et le nom de la table comme DataMember
    - Pour chacune des textbox, ajoute un data binding (en français ça doit être "liaison de données" ou quelque chose dans ce gout là) pour lier la propriété Text à un champ de la BindingSource (au début de la liste des propriétés)
    - Pour passer d'un enregistrement à l'autre, utilise les méthodes MoveNext et MovePrevious de la BindingSource. Tu peux aussi utiliser un BindingNavigator lié à la DataSource

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut
    Merci tomlev pour ta réponse rapide, mais j'ai omis de préciser que je ne travaille pas sur des "Form" mais actuellement sur une page web.Je n'ai pas accès aux composants "BindingNavigator" et "BindingSource".
    Y aurait-il des équivalents pour une page en aspx ?
    Merci.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par zwark Voir le message
    mais j'ai omis de préciser que je ne travaille pas sur des "Form" mais actuellement sur une page web.
    Ben faut poster dans le forum ASP.NET alors... je déplace

    Citation Envoyé par zwark Voir le message
    Je n'ai pas accès aux composants "BindingNavigator" et "BindingSource".
    Y aurait-il des équivalents pour une page en aspx ?
    Il n'y a pas d'équivalent aussi simple à utiliser en ASP.NET, mais tu peux regarder le contrôle DetailsView

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut Lecteur enregistrements bdd
    Bonjour,
    Toujours le même problème.
    J'ai donc modifié ma boucle, supprimé mon Arraylist.
    Cette fois, j'affiche toujours les nom,prénom et adresse dans mes Textbox au démarrage, mais quand j'appuie sur mon bouton "suivant", c'est le dernier enregistrement qui s'affiche et non le deuxième.
    Mon code :

    ds = mon DataSet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    protected void btD_Click(object sender, EventArgs e)
            {             
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    txtNom.Text = Convert.ToString(dr[0]);
                    txtPrenom.Text = Convert.ToString(dr[1]);
                    txtAdresse.Text = Convert.ToString(dr[2]);      
                }
            }
    En déboguant, je me suis aperçu que toutes les lignes étaient lues, mais je n'arrive pas à faire arrêter sur chaque enregistrement...
    Quelqu'un aurait-il une petite idée ?
    Merci.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    pourquoi un foreach ? ça ne sert à rien de parcourir tous les enregistrements, tu ne veux en afficher qu'un seul...

    Enregistre l'index de l'enregistrement courant quelque part (dans le ViewState de la page par exemple), et utilise le pour accéder à l'enregistrement voulu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void btD_Click(object sender, EventArgs e)
            {
                int index = (int)this.ViewState["currentRecordIndex"];
                index++;
                DataRow dr = ds.Tables[0].Rows[index];
                txtNom.Text = Convert.ToString(dr[0]);
                txtPrenom.Text = Convert.ToString(dr[1]);
                txtAdresse.Text = Convert.ToString(dr[2]);
                this.ViewState["currentRecordIndex"] = index;
            }

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

Discussions similaires

  1. [MySQL] dernier enregistrement bdd
    Par franfr57 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/04/2007, 20h39
  2. [MySQL] Affectation de date à enregistrement BDD
    Par geyser dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/01/2007, 15h21
  3. Connection à un enregistrement (BDD)
    Par elabbassi dans le forum Access
    Réponses: 8
    Dernier message: 22/12/2006, 19h38
  4. créer bouton pour enregistrer BDD sur une page
    Par guimauve dans le forum Access
    Réponses: 3
    Dernier message: 11/07/2006, 11h01
  5. [VB6] Supprimer un enregistrement bdd access
    Par floran30 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 19/06/2006, 15h24

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