cs_Sabine26
Messages postés16Date d'inscriptionvendredi 1 février 2008StatutMembreDernière intervention 2 juin 2008
-
13 févr. 2008 à 11:45
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009
-
16 févr. 2008 à 23:45
Bonjour,
Voilà j'ai un petit soucis d'accès à une DropDownList.
J'ai une Webform qui se nomme Sales_objectives et qui contient un tableau et une DDL. Une colonne du tableau représente une année, et je voudrais que dans mon tableau ne figure que les données de l'année sélectionnée dans la DDL.
Mon tableau est rempli via un ObjectDataSource avec une SelectMethod appelé "getListSales" qui elle est codée dans un .vb dans le répertoire App_Code.
Dans ce .vb figure une requete SQL qui sélectionne les champs nécessaires et à pour condition que la date YEAR soit = à DDL1.SelectedValue.
Hors DDL1 est considéré comme nouvel objet non déclaré.
DOnc la question que je me pose c'est comment faire communiquer les objets entre le .vb et le .aspx sachant qu ils ne sont pas dans le meme répertoire... j'ai essayé de mettre le .vb à la racine où se trouve le .aspx... mais sans succès... donc là je sais pas!!!
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009 13 févr. 2008 à 14:48
Je suis pas sur d'avoir saisi ta question, mais d'après ce que j'ai compris tu n'as qu'a passer la valeur de ton DDL lors de l'appel de la méthode "getListSales" que tu poura reccuperer dans ta requete SQL, un truc de ce genre quoi ....
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 16 févr. 2008 à 22:42
Salut,
2 petites remarques :
Sans tenir compte du problème de sécurité :
public void getListSales( string Annee)
{
string SQL = string .Empty; SQL "SELECT * FROM DB_ANNEE WHERE ANNEE '" + Annee + "'" ;
}
Ceci serait mieux :
public void getListSales( string Annee)
{ string SQL "SELECT * FROM DB_ANNEE WHERE ANNEE '" + Annee + "'" ;
}
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009 16 févr. 2008 à 23:45
Comme l'as dit le Coq, il ne faut pas oublier l'aspect sécurité du code nottamment contre SQL Injection.
On peut y remedier soit en faisant une fonction de ce style :
public
static
string FSqlString(
string Chaine)
{
return(Chaine.Trim().Replace(
"'",
"''"));
}
qu'on utilisera de la sorte :
public
void getListSales(
string Annee)
{
//string SQL = string.Empty; -> ouai si on veux
string SQL "SELECT * FROM DB_ANNEE WHERE ANNEE '" + FSqlString(Annee) +
"'";
}
Mais que je considère comme "barbare" c'est pourquoi je conseil vivement l'utilisation des requetes paramétrées.