begin process at 2012 05 27 20:35:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

Access

 > 

condition sur un WHERE dans une requete


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

condition sur un WHERE dans une requete

mardi 29 juillet 2008 à 11:09:08 | condition sur un WHERE dans une requete

nico5969

Hello à tous

Alors voila moi j'ai une page sur laquelle l'utilisateur coche un 'radiobutton' dans une liste
A chaque bouton est affecté une valeur que j'utilise comme variable dans le WHERE de ma requete.

J'aimerai que le WHERE soit ignoré si l'utilisateur selectionne un bouton de la meme liste et que j'appelle "TOUTES" (les boutons designe des categories) et que du coup je puisse recuperer les valeurs lier a TOUTES les categories

J'espere avoir été suffisamment clair dans mon explication
Merci a ceux qui sauront m'aider ;)

Nico

Impossible is Nothing !
mardi 29 juillet 2008 à 12:06:55 | Re : condition sur un WHERE dans une requete

nhervagault

Administrateur CodeS-SourceS
Salut

Une solution est d'utiliser le
 SQL += " WHERE 1=1 " --> tous les resultats
if(....){ --> Filtre conditionnel
 SQL += " AND champs = @param1";
 Cmd[@param1] = "Valeur";
}

Apres tu peux utiliser un stringbuilder pour + de performance
mardi 29 juillet 2008 à 12:15:27 | Re : condition sur un WHERE dans une requete

ofonadroite

Membre Club
Salut,

Pour ta requete tu peut creer un string que tu remplis au fur et à mesure (je pense que c'est ce que tu fait déjà) du type :

string

requete = "select * from MaTable";

int test = 0;

//test qui regarde si ton RadioButton sp,cifique est coche

//dans ce cas il ne finit pas la requete

if (RadioButtonList1.Items[0].Selected == true)

{

}

else

{

      for (int i = 1; i < RadioButtonList1.Items.Count; i++)

      {

            if (RadioButtonList1.Items[i].Selected == true)

            {

                    test++;

                  //si c'est le premier coche

                  if (test == 1)

                  {

                           requete +=

"where";

                           requete += RadioButtonList1.Items[i].Value.ToString();

                           requete +=

" = ";

                           requete += RadioButtonList1.Items[i].Text.ToString();

                   }

                  //pour les autres

                  else

                  {

                        requete +=

"and";

                        requete += RadioButtonList1.Items[i].Value.ToString();

                        requete +=

" = ";

                        requete += RadioButtonList1.Items[i].Text.ToString();

                    }

            }

}


Par contre, pour gérer le nom de tes champs je suis partie du principe que tu donne à Value de ton radiobutton le nom de ceux-ci et à Text la valeur que tu veux y comparer. Ce n'est bien sur qu'un exemple.

@Pluche



Si une réponse vous convient n'oubliez pas le réponse acceptée !!!
Ca aidera beaucoup d'autres personnes
mardi 29 juillet 2008 à 13:52:14 | Re : condition sur un WHERE dans une requete

nico5969

euh ouais....en fait j'ai oublié de dire que j'étais pas un kador de la prog....j'ai po tout compris

en dessous voila ce que j'ai deja ecrit (dans la page directement):

Liste Radio:

<

asp:RadioButtonListID="catselect"runat="server"RepeatColumns="2"

RepeatDirection="Horizontal"AutoPostBack="True"CellPadding="0"

CellSpacing="0"Width="400px">

<asp:ListItem>Toutes</asp:ListItem>

<asp:ListItemValue="pl">Petite Laveuse</asp:ListItem>

<asp:ListItemValue="ml">Moyenne Laveuse</asp:ListItem>

<asp:ListItemValue="gl">Grosse Laveuse</asp:ListItem>

<asp:ListItemValue="pla">Petite Laveuse Autotract,e</asp:ListItem>

<asp:ListItemValue="gla">Moyenne Laveuse Autotract,e</asp:ListItem>

<asp:ListItemValue="plc">Petite Laveuse . Cfble</asp:ListItem>

</asp:RadioButtonList>

la "value" est telle qu'elle dans la base de données, c'est a dire que pour chaque modele, il y'a une marque et une categorie (pla, plc, gl.....) correspondant.
NB: les marques peuvent se retrouver dans pluisieurs catégories....d'ou le premier bouton (sans "value" attribuée) "TOUTES" et auquel je souhaite soit donner une "value" soit y ajouter une condition ....

Requete:

<

asp:AccessDataSourceID="AccessDataSource1"runat="server"

DataFile="~/App_Data/matos.mdb"

SelectCommand="SELECT DISTINCT [marque] FROM [laveuses] WHERE ([categorie]=?)">

<SelectParameters>

<asp:ControlParameterControlID="catselect"

PropertyName="SelectedValue"/>

</SelectParameters>Le "problème" de cette requete est que il selectionne une marque en fonction de la catégorie sélectionnée en 'radiobutton' et je cherche donc un moyen d'ignorer la catégorie si "TOUTES" est selectionné.

sinon vos codes.....il faut les mettre dans la page direct ou avec le code (.aspx.vb) ?????

Nico

Impossible is Nothing !
mardi 29 juillet 2008 à 14:36:34 | Re : condition sur un WHERE dans une requete

ofonadroite

Membre Club
Réponse acceptée !
Salut,

Désolée je me suis peut être un peu enflammée surtout qu'il n'est pas obligatoire de passer par le code-behind. Pour ton info le code se place bien dans la page aspx correspondante mais là le code c'est du C# alors que toi tu fait du VB.

Bon sinon pour ton affaire j'ai eu une idée :
Il faut que tu donne une valeur à ton ListItem pour "toutes" du genre value="toutes".
Ensuite dans ton ControlParameter tu rajoute la propriété  Name="CAT" pour pouvoir l'utiliser mieux dans ton select.
Enfin ton SelectCommand tu le remplace par

SelectCommand

="SELECT DISTINCT [marque] FROM [laveuses] WHERE ([categorie] = @CAT) OR (@CAT = 'toutes')"ce qui permettra de dire que si la variable @CAT est égale à "toutes" alors tu affiche toutes les lignes sinon uniquement celles spécifiées. Juste je ne suis pas sûre pour les ' ' avec Access et si ça marche pas teste avec " " . De toute façon tu peux aussi tester ta requete, moi j'ai essayée et ça fonctionne bien.

@Pluche



Si une réponse vous convient n'oubliez pas le réponse acceptée !!!
Ca aidera beaucoup d'autres personnes
mardi 29 juillet 2008 à 15:15:36 | Re : condition sur un WHERE dans une requete

nico5969

Waouh....toi t'es un amour ;)
merci nadege :D

en plus j'ai reussi en faisant travaillé mes petite méninges à l'integrer a une deuxième requete qui combine un AND dans le WHERE

euh question ...c'est quoi le truc du "@"...puisque manifestement c'est ca qui a modifié le truc... :p

Merci merci merci beaucoup

Nico

Impossible is Nothing !
mardi 29 juillet 2008 à 15:51:14 | Re : condition sur un WHERE dans une requete

ofonadroite

Membre Club
De rien
Le @ c'est ce qui va te permettre de pointer vers la variable a laquelle tu as donné ce nom. C'est un pointeur tout bêtement qui dit au programme "va chercher à cet endroit précis".
Bon courage pour la suite.
@Pluche



Si une réponse vous convient n'oubliez pas le réponse acceptée !!!
Ca aidera beaucoup d'autres personnes


Cette discussion est classée dans : bouton, utilisateur, requete, where, condition


Répondre à ce message

Sujets en rapport avec ce message

ASP Débutant : Faire une requete sql apres avoir cliqué sur un bouton [ par aymron ] Bonjour, Je suis débutant en asp... Mon probleme est tres simple, je veux faire une requete sql apres avoir cliqué sur un bouton !!! Voici mon code Focus sur un bouton radio [ par Kytel ] Salut !Bon voilà mon problème :J'ai deux domaines a et b et avec un Active x je récupère le nom de domaine de l'utilisateur.Sur cette même page j'ai d Filtrer des documents à partir d'un champ [ par ToXXic_57 ] Bonjour,Je suis entrain de développer une Web Part qui afficherait les dossiers en cours d'un utilisateur sélectionné dans une liste déroulante.La pre requete sql syntaxe [ par kingstyle ] Bonjour a tousje voudrais savoir la syntaxe d'une requète sql avec un where qui pose une condition selon une variable voici ma requete que je tape:log valeur d'un texteBox [ par pascallgagnon ] Bonjour à tous! Tu fais une requete avec une clause Where blabla='TaChaine' lorsque l'événement que tu souhaite se déclenchevoici une réponse que j'ai recherche dans la bd avec un formulaire! [ par pascallgagnon ] Bonjour à tous! Tu fais une requete avec une clause Where blabla='TaChaine' lorsque l'événement que tu souhaite se déclenchevoici une réponse que j'ai Popup récuperer temps selectionné [ par furion01 ] Bonsoir,Je code une application web qui trace des courbes en asp et je doit récupérer deuxtemps que l'utilisateur choisi correspondant a la date de dé Condition Where de DropDownList [ par fishingman ] bonjour, je suis entrain de lire quelques donnée à partir de ma base de donné SQL Server. j'ai ajouté un control LOGIN à mon site qui me dirige vers suppression et modification dans un bouton [ par ncode33 ] bonjour a tous ,j ai un petit probleme...;)voila j ai fait un formulaire ou je recupere des données d'une requete select.J aimerai pouvoir modifier et authentification [ par drracculla ] bonjour , je ss un debutant en info ,  je veux securise mon site web par une page d authentification liee a une base de donne access ou il y a une tab


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales