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

VB.NET Discussion :

suivant precedent ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut suivant precedent ?
    bonjour ,
    i need your help,
    je developpe en ado vb.net..dans mon formulaire windows je possede des texboxs et deux boutons.au chargement du formulaire, les texboxs seront remplis par les données de la premiere ligne d'une table dans la base de données.le premier bouton permet d'afficher les données du 2eme ligne,or l'autre bouton permet d'afficher l'enregistrement qui précède.pourriez vous m'aider pour effectuer cela svp.?

    merci beaucoup
    j'attend vos solutions

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    l'enregistrement qui précède
    Pour les bases actuelles de type SQL, la notion de première ligne ou de précédent/suivant n'existe plus vraiment.

    On peut toutefois touver le suivant/précédent, si on a une clé unique (par exemple, une clé primaire de type autoincrément dont la valeur correspond normalement à l'ordre de création des enregistrements) :
    • faire un SELECT
    • avec une clause WHERE dans laquelle la condition est que la clé soit supérieure/inférieure à celle de la ligne actuelle
    • avec LIMIT 1 (un seul enr. résultant)

  3. #3
    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
    Si tu utilises le data binding, c'est tout simple...

    Tu crées un DataSet avec une DataTable qui correspond à ta table en base, et tu lies les textbox aux champs correspondant (propriété "(DataBindings)" dans le designer). Le designer va automatiquement créer une BindingSource ("totoBindingSource" si ta table s'appelle "Toto"). Pour passer à la ligne précédente, tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    totoBindingSource.MovePrevious()
    Et pour passer à la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    totoBindingSource.MoveNext()
    A noter qu'il existe un contrôle pour gérer ce genre de choses : BindingNavigator

    Si tu ne sais pas utiliser un DataSet, je te suggère de commencer par cet article

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Bonjour,
    Tout D'abord, un grand merci d'avoir repondu,
    voila j'ai travaillé avec le databinding , je vous propose le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim cn As New SqlConnection("data source=.;initial catalog=tele_commerce;integrated security=sspi")
            Dim da As New SqlDataAdapter("select * from client", cn)
            Dim ds As New DataSet
            da.Fill(ds, "client")
            Dim bs As New BindingSource(ds, "client")
            TextBox1.DataBindings.Add("text", bs, "numclient")
            TextBox2.DataBindings.Add("text", bs, "nom")
            bs.MoveNext()
        End Sub
    mais quand je clique la deuxieme fois sur le bouton ça donne une erreur genre :

    Deux liaisons de la collection vont être liées à la même propriété. Nom du paramètre : binding
    je ne sais pas ou ya le probleme.?
    Merciiii

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Graffito merci de repondre,
    je me demande juste si LIMIT 1 signifie qu'il va retourner seulement l'enregistrement dont lequel...comment expliquer..?!
    voila je vous donne un exemple: supposons que je possede la table client ou le champ numclient est de clé primaire :
    Numclient Nom
    1 messari
    50 dghhj
    23 jghjg

    Dans le formulaire windows, au chargement de la page, les textboxs seront remplis par les données du 1 enregistrement " 1 messari ",quand je clique sur suivant,on doit normalement afficher l'enregistrement dont le numclient est superieur à 1 (dans notre exemple on a 50 et 23 ) .qu'est ce que la requete doit choisir comme valeur à afficher?! est ce que LIMIT 1 va se charger de recuperer le numclient le plus petit dans la table MAIS superieur à 1 ?!

    Merci Beaucoup

  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
    Citation Envoyé par mouadmagan Voir le message
    mais quand je clique la deuxieme fois sur le bouton ça donne une erreur genre :

    Deux liaisons de la collection vont être liées à la même propriété. Nom du paramètre : binding

    je ne sais pas ou ya le probleme.?
    Il ne faut pas que tu recharges les données et que tu redéfinisses les bindings à chaque fois... Il faut le faire une seule fois, au chargement du formulaire (évènement Load). De plus, il ne faut pas créer une nouvelle BindingSource mais réutiliser la même, donc il faut que tu la déclares comme un champ de ta classe (ou plus simplement, que tu la crées avec le designer).

    Le seul code à mettre dans le code du bouton "suivant" est l'appel à MoveNext

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Bon Quoi Dire... ça marche à 100% et c'est grace à vous !!
    merci infiniment..
    je poste le code à ceux qu'avaient le meme probleme :

    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
    Imports System.Data
    Imports System.Data.SqlClient
     
    Public Class Form1
        Private bs As New BindingSource()
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim cn As New SqlConnection("data source=.;initial catalog=tele_commerce;integrated security=sspi")
            Dim da As New SqlDataAdapter("select * from client", cn)
            Dim ds As New DataSet("client")
            ds.Tables.Add("client")
            da.Fill(ds.Tables("client"))
            bs.DataSource = ds.Tables("client")
            TextBox1.DataBindings.Add("text", bs, "numclient")
            TextBox2.DataBindings.Add("text", bs, "nom")
            bs.DataSource = ds.Tables("client")
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            bs.MoveNext()
     
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            bs.MovePrevious()
        End Sub
    End Class
    Bonne journée à Tous

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

Discussions similaires

  1. [Formulaire] bouton suivant precedent
    Par luz_negra dans le forum IHM
    Réponses: 5
    Dernier message: 05/12/2007, 09h44
  2. [Javascript] popup : Suivant-Precedent des images
    Par kagura dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/02/2007, 16h07
  3. recherche code pour limiter une lister et utiliser les bouton suivant precedent
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/09/2006, 17h43
  4. [FLASH 8] BP suivant precedant
    Par steeves5 dans le forum Flash
    Réponses: 5
    Dernier message: 02/03/2006, 16h55
  5. [FLASH 8] Création de BP suivant precedant
    Par steeves5 dans le forum Flash
    Réponses: 6
    Dernier message: 25/02/2006, 21h43

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