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

Windows Forms Discussion :

Requête SQL avec paramètre sur BDD Access


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 61
    Points
    61
    Par défaut Requête SQL avec paramètre sur BDD Access
    Bonjour,

    Je développe actuellement une application qui utilise une BDD Access comportant plusieurs tables. J'affiche une de ces tables (table "client") dans un DataGridView.
    Dans ma Form, j'ai plusieurs TextBox qui servent à l'utilisateurs de filtrer sa recherche. Le problème c'est que je n'arrive pas à donner ces paramètres dans ma requête SQL et je n'ai pas réussi via le configurateur de requêtes de VS2005.
    En gros, le remplissage de base utilise la méthode Fill() qui appelle la requête suivante : SELECT * FROM client
    Ce que j'aimerais, c'est que si l'utilisateur entre des critères, alors j'appelle la requête suivante : SELECT * FROM client WHERE ... AND... AND...
    Je préfère le faire comme ça car c'est plus rapide pour ma table qui contient plus de 20000 entrées. J'ai vu qu'on pouvait utiliser le BindingSource.Filter, mais ça filtre l'ensemble du tableau une fois celui-ci chargé, donc ça va prendre beaucoup plus de temps.

    Merci de votre aide

  2. #2
    Membre régulier Avatar de Asiany
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 73
    Points : 77
    Points
    77
    Par défaut
    Tu demandes à l'utilisateur de entrer par exemple le numéro du client et cela doit t'afficher par exemple dans ta gridview toutes les infos sur le client??
    Via la requête "SELECT * FROM CLIENT WHERE num_cli =" + strNumCli"

    C'est une question car j'ai pas très bien compris ce que tu veux faire.
    Une textbox pour entrer les valeurs puis chargement de la gridview?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2002
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 104
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Je suppose que tu utilise un lien ODBC alors pour l'utilisation des paramètres : http://msdn2.microsoft.com/en-us/lib...nd(vs.80).aspx
    Sinon il faut aller voir la page équivalente pour le bon connecteur.

    Pour la question du multicritère, plusieurs possibilités :
    1 - Générer la clause where dynamiquement.
    2 - Utiliser des condition logique ((X1 est null OU (Champ1 = X1)) ET ((X2 est null OU (Champ2 = X2)) ... Mais avec Access, l'analyse de la requete peut être limité, donc à voir.
    3 - Tout charger dans le dataset (1 seule fois) et le filtrer (enfin la defaultview de la datatable) à chaque nouvelle recherche. Même 20000 lignes, ça ne prend pas des dizaines de Mo, c'est donc assez rapide à traiter. Cette solution ressemble un peu à la solution 1/ puisqu'il faut générer la clause where (le filtre).

    La solution 3 me semble la mieux adaptée car tu utilises Access et pas un serveur de BDD qui assurerait la mise en cache des données (ce qu'Access ne fait pas tout le temp).

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par Asiany
    Une textbox pour entrer les valeurs puis chargement de la gridview?
    C'est ça. Au final j'ai utilisé la méthode Select après avoir chargé ma table entière. Ca prend juste du temps pour la charger mais après les filtres sont rapides.

    Merci pour vos réponses.

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

Discussions similaires

  1. Requête SQL avec paramètre sous visual studio 2008
    Par Jeecer dans le forum Accès aux données
    Réponses: 3
    Dernier message: 21/08/2011, 10h18
  2. Appel requête SQL avec paramètre
    Par sgcb01 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 13/11/2008, 12h13
  3. Requête SQL avec jointure sur trois tables
    Par pit2121 dans le forum SQL
    Réponses: 0
    Dernier message: 19/05/2008, 20h24
  4. Requète SQL avec paramètres
    Par Stouille89 dans le forum C++Builder
    Réponses: 6
    Dernier message: 08/01/2008, 07h54
  5. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33

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