2009-11-01 1 views
0

Je crée une page qui aurait un champ différent pour l'utilisateur à partir duquel effectuer la recherche. par exemple. par:Rechercher l'instruction select

  • Etat: -dropdownlist1-
  • Nom de l'élève: -dropdownlist2-
  • ID étudiant: -dropdownlist3-
  • Leçons: -dropdownlist4-
  • Année: -dropdownlist5-

Comment écrire l'instruction select pour cela? Chaque liste déroulante aurait besoin d'une instruction select qui extrairait différentes données de la base de données. Mais, je veux écrire une instruction select qui peut choisir dynamiquement les options de la liste déroulante. Au lieu d'écrire de nombreuses instructions select.

Disons;

  • Niveau: -dropdownlist1-; valeur par défaut (tous)
  • Nom de l'étudiant: -dropdownlist2-; valeur par défaut (tous)
  • Étudiant: -dropdownlist3-; 0-100 est choisi
  • Leçons: -dropdownlist4-; A-C est choisi
  • Année: -dropdownlist5-; 2009 est choisi
+0

Demandez-vous comment remplir les listes de sélection ou comment interroger votre base de données en fonction de certaines valeurs sélectionnées? Quel moteur de base de données utilisez-vous (par exemple Mysql, Sql Server, Oracle, etc.)? –

+0

comment interroger la base de données je pense. Je dois écrire une instruction ONE sql pour appeler les données de 2 tables différentes. J'utilise C# et le moteur de base de données est Sql Server. – Nana

+0

En faisant comme ça, est-ce que je le fais bien? Si c'est faux, comment puis-je le corriger? select * from Etudiants où (@Grade = 'All' ou Grade = @Grade) et (@StudentName = 'All' ou StudentName = @StudentName) et (StudentID = 'All' ou StudentID = @StudentID) + inner join select * de Subject où (@Lessons = 'All' ou Lessons = @Lessons) et (@Year = 'All' ou Year = @Year); – Nana

Répondre

0

Cela dépend de la langue que vous utilisez entre SQL et la page. Mais tester le menu déroulant pour une valeur non-générique, puis ajouter dans une clause where:

sql = "select * from people where 1 = 1"; 
if(dropdownlist.value != "All") 
    sql += "and name like '%" + dropdownlist.value + "%' "; 

(attention pour injection SQL si)

+0

Que faire si ma table n'est pas seulement de 1 table. mais c'est de plusieurs tables? J'utilise C#. – Nana

+0

créer une vue et requête que –

0

Extension à la réponse de Tom,

Créer une vue à la première qui contiendra le jeu d'enregistrements nécessaire. Requête sur la vue.