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 :

Requête Dynamique bouton de recherche


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Points : 72
    Points
    72
    Par défaut Requête Dynamique bouton de recherche
    Je veux faire une requête dynamique selon le formulaire que j'ai mis en pièce jointe.
    J'ai une date, une liste, des checkbox, et des mots-clés (à l'intérieur du champ information)
    Ces champs ne sont pas tous obligatoires.
    En fonction des informations saisies lorsque je clique sur rechercher les information dans la GridView seront filtrés.
    Je veux juste l'idée sur comment faire Merci

    Nom : Test1.jpg
Affichages : 93
Taille : 48,2 Ko

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    Le principe d'une recherche multicritère n'est pas bien compliqué (d'ailleurs déjà beaucoup de topics sur ce sujet sur le forum ... as-tu recherché un minimum ?). Tu faire faire ça de plusieurs façons, je t'en propose une.

    Les étapes :
    1. Une variable "request" qui contient le début de ta requête et une variable "tmpReq" qui contiendra les conditions
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim debReq, tmpReq as String
    request= "SELECT tesChamps FROM taTable WHERE 1 = 1 "
    2. En fonction des champs du formulaire qui sont renseignés, tu concatènes ta requête avec les conditions
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     // On regarde si txtNom contient quelque chose, si oui on ajoute la condition à la requête
    If (txtNom.text <> Nothing) Then
    tmpReq = "AND nom like %" + txtNom.text + "% "
    request = request + tmpReq
    End If
    Et tu fais la même chose pour tous tes contrôles du form

    3. Une fois tous les tests effectués ta requête devrait être correcte (pas testé, je fais ça à la volée) et tu n'auras plus qu'à l'exécuter


    En espérant t'avoir apporté des pistes à défaut de la solution
    Tiens-moi au courant.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Points : 72
    Points
    72
    Par défaut
    Merci pour votre réponse.

    Je vais tester et je te tiens au courant

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 26
    Points
    26
    Par défaut
    Re majduuus

    Alors, as-tu pu faire quelques tests sur cette fameuse requête dynamique ?

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Points : 72
    Points
    72
    Par défaut
    Re meylin

    Merci c'était l'idée que je cherchait.
    J'ai fait quelques tests et ça a l'air de marcher. Quand j'aurais fini je te tiens au courant car j'ai eu d'autres trucs à faire à part ça

  6. #6
    Membre régulier
    Femme Profil pro
    Elève Ingénieur à l'ENSIAS
    Inscrit en
    Février 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Elève Ingénieur à l'ENSIAS

    Informations forums :
    Inscription : Février 2013
    Messages : 66
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Je crois que tu dois créer des vues (DataView) de la table source de ton GridView, ensuite tu vas utiliser la propriété RowFilter du DataView. Cette propriété prend en paramètre : 1.le champ à filtrer 2.la valeur à filtrer. dans ton cas, c'est soit la date choisie soit la valeur du checkbox selectionné..

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    Sinon, tu peut aussi utiliser des requêtes paramétrées, c'est un peu plus sécurisant.

  8. #8
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    un exmple

    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
     
    SqlConnection maConnexionSQLsrv; 
    SqlCommand myCommand; 
    string maRequete, ConnexionSQL; 
     
    //Récupération de la chaine de connexion au serveur de base de données 
    ConnexionSQL = ConfigurationSettings.AppSettings["ConnectionStringSQLsrv"]; 
    maConnexionSQLsrv = new SqlConnection(ConnexionSQL); 
     
    //Requete mise a jour de la table client 
    maRequete = "INSERT INTO [article] ( [idclient],[idarticle],[prixarticle]) 
                             VALUES (@id_article, @prix_article, @nom_article)"; 
     
    //Création de la commande SQL 
    myCommand = new SqlCommand(maRequete, maConnexionSQLsrv); 
     
    //Création et décalartion des paramètres 
    myCommand.Parameters.Add(new SqlParameter("@id_article", SqlDbType.Int, 4)); 
    myCommand.Parameters.Add(new SqlParameter("@prix_article", SqlDbType.Float, 8)); 
    myCommand.Parameters.Add(new SqlParameter("@nom_article", SqlDbType.VarChar, 25)); 
     
    //Attribution des valeurs aux paramètres 
    myCommand.Parameters["@id_article"].Value = Convert.ToInt32(maTextBox1.Text); 
    myCommand.Parameters["@prix_article"].Value = Convert.ToDouble(maTextBox2.Text); 
    myCommand.Parameters["@nom_article"].Value = maTextBox3.Text; 
     
    try 
    { 
      //Execution de la requête 
      myCommand.Connection.Open(); 
      myCommand.ExecuteNonQuery(); 
      myCommand.Connection.Close(); 
    } 
    catch (SqlException ex) 
    { 
      Response.Write(ex.Message); 
    }

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Points : 72
    Points
    72
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    String request = "SELECT * from maTable WHERE 1 = 1 ";
                String TmpReq;
                if (TextBox1.Text != null)
                {
                    TmpReq = "AND col = "+ TextBox1;
                    request += TmpReq;
                }
     
                SqlDataSource1.SelectCommand = request;
    Mais ça marche pas. Je vois pas l'erreur

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Points : 72
    Points
    72
    Par défaut
    Personne n'a une idée

  11. #11
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par majduuus Voir le message
    Mais ça marche pas. Je vois pas l'erreur
    Qu'est-ce qui ne marche pas? Essayes d'être plus précis. En outre, pourquoi n'utilises-tu pas les requêtes paramétrées comme suggéré par kineton?

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Points : 72
    Points
    72
    Par défaut
    En fait mon problème était lorsque je clique sur le bouton recherche ça marchait pas il prenait pas en compte la nouvelle requête mais lorsque j'ai laissé la gridView vide dans la partie load et j'ai mis le code qui permet de charger la gridView au niveau du bouton de recherche mon problème a été résolu

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

Discussions similaires

  1. Requête sur une requête dynamique...
    Par kluh dans le forum Access
    Réponses: 4
    Dernier message: 17/11/2005, 19h59
  2. [pb requête sql] Requête dynamique
    Par viny dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 15/09/2005, 12h31
  3. Erreur de conversion et requête dynamique dans une procédure
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/08/2005, 15h12
  4. [Procs stockées] [Débutant] Requête dynamique
    Par stailer dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2005, 14h29
  5. Requête dynamique en pagination
    Par pascal_fluck@hotmail.com dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/03/2005, 16h04

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