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 :

Affichage en temps reel dans une DataGrid [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    développeur VB
    Inscrit en
    Avril 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : développeur VB

    Informations forums :
    Inscription : Avril 2011
    Messages : 33
    Points : 20
    Points
    20
    Par défaut Affichage en temps reel dans une DataGrid
    Bonjour chères amis

    Comment effectuer un Affichage en temps réel dans une DataGrid
    voici la requête avant le chargement de la DataGrid, et où dois-je écrire mon code.( TextBox1.TextCHanged? ou TexBox2.TextChanged? ou les deux à la fois ou ?????)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cmd.CommandText = "Select * From TPersonnels Where Nom Like '%" & TextBox1.Text & "%' and PreNom Like '%" & TextBox2.Text & "%' "
    je doit entrer un Nom et un Prénom et en même temps la DataGrid m'affiche tous les personnes qui ont le Nom et Prénom.

    Merci d'avance.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    les 2
    par contre faire une requete à chaque fois ce n'est pas l'idéal, il vaut mieux charger toute la liste puis filtrer en ram

    si la liste est très grande, tu peux délayer le textchanged (ca se fait à la main)
    car sinon ca va freezer l'interface pendant l'écriture (textchanged est levé à chaque frappe, il faut mieux attendre genre 300ms avant de filtrer (=arrêt de frappe))

    si la liste est très très grande ou que tu es fénéant (pour utiliser une des solutions précédentes) alors il faut passer par la requete, mais faire un bouton de recherche, en gros l'utilisateur rempli les combobox puis clic sur un bouton, l'exécution de la requête se fait sur l'event click (comme sur le web en gros)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 74
    Points : 94
    Points
    94
    Par défaut
    Bonjour,

    je vais même aller plus loin que ça :

    oublie le textchanged de tes textboxes, déjà par rapport à ce que dit Pol63, mais aussi parce que tant que le nom et le prénom saisis ne sont pas complets et ta requete va te renvoyer du nul, donc c'est vraiment multiplier les requêtes pour rien, si ce n'est avoir une belle usine à gaz

    Tu aurais plus vite fait, encore une fois comme le dit Pol63, de charger tes données dans un tableau, et pour faire bien, tu devrais même remplacer des textboxes par des comboboxes, l'une alimentée avec le champ Nom, l'autre avec le champ prénom au chargement de ton formulaire.
    Cela te permettrait :
    - d'ajouter la saisie semi automatique dans tes comboboxes
    - de t'assurer que les données entrées sont toujours valides
    - et donc de ne pas faire de recherches pour rien.

    Bon dev !
    Pensez à mettre le topic en si votre problème a été solutionné. / Un petit est le bien venu si la réponse vous satisfait
    Ce qui mérite d'être fait mérite d'être bien fait.

  4. #4
    Membre à l'essai
    Homme Profil pro
    développeur VB
    Inscrit en
    Avril 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : développeur VB

    Informations forums :
    Inscription : Avril 2011
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Salut

    J'ai fait comme le dit pol63 j'ai utilisé un bouton.
    pour le cas des combobox ce n'est pas possible car j'ai 50866 enregistrements pour le moment.
    j'ai fait cinq critère de recherche (Nom, Prénom, Nom du père, grade, Responsabilité ) ça met environ 6 seconde pour afficher le résulta. C'est long, j'essaye d'améliorer ça.
    Parfois je connait seulement le prénom et le nom du père ou bien le nom et le grade ou bien le prénom et sa responsabilité ...
    c'est pour cela, j’étais obligé de faire plusieurs critères de recherche et avec la commande Like . 50866 enregistrements (Employer)

    Merci pour vos réponses.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 74
    Points : 94
    Points
    94
    Par défaut
    Salut,

    en effet, 50K enregistrements, ça commence à faire lourd. Quoi que tu puisses choisir de n'afficher que 10 choix dans la combobox puis avec la saisie semi automatique, t'en sortir très honnorablement. Chaque combobox pouvant êter alimentée par une requête select dans ta BDD. Moi j'ai une table de 30 lignes et ça se passe très très bien.

    Mais quand tu dis 6 secondes de chargement, tu parles de la requête SQL ou du chargement dans un tableau de variable ?
    Parce que que 6 secondes pour un select
    Pensez à mettre le topic en si votre problème a été solutionné. / Un petit est le bien venu si la réponse vous satisfait
    Ce qui mérite d'être fait mérite d'être bien fait.

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

Discussions similaires

  1. Affichage de l'heure en temps réel dans une interface
    Par T-MAT dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 26/12/2008, 19h08
  2. Réponses: 3
    Dernier message: 15/06/2007, 11h27
  3. [VB.NET] Disparition scrollBar dans une DataGrid
    Par aphykite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/10/2004, 10h29
  4. Pb d'update dans une DataGrid
    Par bidson dans le forum XMLRAD
    Réponses: 11
    Dernier message: 27/05/2003, 14h11

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