Utiliser la valeur d'une textbox dans une requete

Résolu
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 - 22 sept. 2006 à 16:40
lazer819 Messages postés 12 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 20 mars 2008 - 6 mars 2008 à 23:48
Bonjour,


J'ai un probleme avec l'application que je développe.


Dans un premier temps l'application charge une table dans un datagrid : aucun probleme.

Ensuite le focus s'effectue sur la premiere ligne et les détails des valeurs s'affiche dans des TextBox : pas de probleme.


Ensuite je dois afficher une autre table dans un deuxieme datagrid,
cette table doit s'afficher en fonction de la ligne sélectionnée
précédemment dans le 1er datagrid. probleme ... car la valeur de la
clause where pour le chargement de la deuxieme table n'est pas
accessible. que faire ? recréer une requete pour prendre
l'identifiant(qui n'est pas afficher) de la premiere ligne surligné ,
puis le transmettre a une autre requete de facon a afficher dans le
deuxieme datagrid les valeurs avec une clause where avec l'identifiant
récupéré . . . . euh oui mais comment . .?  ? la je pense qu'il y
a plus simple mais je suis a cours d'idée.


De plus je ne sais pas concaténer une valeur de text box avec une requete sql (par exmple pour créer une clause where) . . .


Merci de me répondre . . . car la je stagne . . .

11 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
22 sept. 2006 à 18:04
Salut,

Pour la concaténation :

String sQuery = "SELECT * FROM uneTable WHERE LeChamp='" + TextBox1.Text + "';"

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
22 sept. 2006 à 20:35
Salut,

En n'oubliant pas, naturellement, d'abandonner définitivement la méthode de concaténation pour l'utilisation des requêtes paramétrées, car si jamais l'utilisateur saisi un texte de ce genre :
';TRUNCATE TABLE uneTable;SELECT 1
...

Injection SQL

/*
coq
MVP Visual C#
CoqBlog
*/
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
22 sept. 2006 à 20:45
et là ... c'est le drame !

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
22 sept. 2006 à 20:48
Oui, donc autant l'éviter ;-)

/*
coq
MVP Visual C#
CoqBlog
*/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
25 sept. 2006 à 14:38
Merci pour vos réponses, il n'y a pa de problemes de SQL Injection car
les requetes serventa remplir un datagrid, et l'utilisateur ne peut en
rien modifier la requete !!


Par contre j'ai un petit souci quand j'utilise la concaténation .


               oracleConnection1.Open();

               dataSet21.Clear();

              
String sQuery "SELECT * FROM matable WHERE :moncham'" +
this.textBoxid.Text + "';" ;

               this.oracleCommandadapter2.CommandText = sQuery ;

                this.oracleDataAdapter2.Fill(dataSet21);

                oracleConnection1.Close();


j'utilise tout ca a l'interieur d'un try catch, et lorsque j'arrive sur
la ligne :  this.oracleDataAdapter2.Fill(dataSet21);

mon catch est effectif et le remplissage ne se fait donc pas . . . d'ou cela peut il venir ?


je n'ai pas l'affichage de ma table dans le datagrid .

J'aimerai pouvoir afficher cette table en fonction de la valeur de
moncham dans la ligne sélectionné dans le 1er datagrid . La valeur de
moncham est extraite dans la textBoxid lors du remplissage du premier
datagrid .

Please help ...
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
25 sept. 2006 à 15:32
quelqu'un a une idée de ce qui peut se passer ?

car la .  . .. comprend pas ..
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
26 sept. 2006 à 12:31
j'ai une erreur de Type : ORA-00911 : caractère non valide .

Ca viendrai peut etre de ma requete, j'ai peut etre oublié d'utiliser une méthode setParameter() ?? 

Please help 
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
26 sept. 2006 à 12:45
Salut


Je suis pas un expert sous oracle, mais le ':' apres le WHERE, il le comprend ?
Quelle est la valeur exacte que prend ta chaine ?





Mx
MVP C#
 
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
26 sept. 2006 à 12:54
apres la clause where j'ai changé le :monchamp par MON_CHAMP . (MON_CHAMP est directement le nom de la colonne et non le nom du parametre !!)

apres cette modif , la connexion et l'affichage marche .

Par contre j'ai un probleme au niveau de l'affichage du datagrid : certaine colonne sont en double avec un nom d'alias et leur valeur est a null , comment puis-je faire pour virer les colonnes du datagrid ou pour insérer des alias dans ma requete, car je n'arrive pas a concaténé correctement
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
26 sept. 2006 à 13:10
ca doit se passer dans le dataset ....
0
lazer819 Messages postés 12 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 20 mars 2008
6 mars 2008 à 23:48
slt svp qell k1 me aidé  pour trouvé un code pour remplir un datagrid avec une valeur de  textbox  just un click sur  button vb.net 2005
0
Rejoignez-nous