2009-11-15 6 views
0

J'ai une base de données dans MS-Access qui a des noms de champs comme "1", "2", "3", ... "10".colonne variable

Je veux sélectionner la colonne 1 puis quand je clique sur un bouton, la colonne 2, la colonne 3, ... et ainsi de suite.

Comment faire?

En fait, je veux faire un projet en JSP.

+2

Pouvez-vous poser des questions plus spécifiques? – Shyju

+0

Ce n'est presque jamais une bonne idée de nommer vos champs 1, 2, 3 ... 10 - plus de noms descriptifs vous faciliteront la tâche, aussi bien pour vous que pour ceux qui pourraient avoir à apporter des modifications à ce projet après vous. –

Répondre

1

Ce sont les noms des champs peu pratiques, mais vous pouvez utiliser des crochets pour les utiliser dans une requête:

select [1] from SomeTable where SomeId = 42 

Une règle de base pour la conception de bases de données est que les données doivent être dans les valeurs de champ, et non pas dans les noms de champs . Vous devriez réfléchir à la refonte de la table afin que vous stockez les valeurs dans des lignes séparées au lieu, et ont un champ qui spécifie quel élément est stocké dans la ligne:

select Value from SomeTable where SomeId = 42 and ValueType = 1 

Cela vous permettra d'utiliser une requête paramétrée au lieu de créer la requête de manière dynamique.

De la même façon, vous n'avez pas de champs vides si vous utilisez moins de dix éléments, et la conception de la base de données ne vous limite pas à dix éléments.

0

Supposons que j'ai une table comme celui-ci

id nom

1 name1 
2 name2 
3 name3 
4 name4 
5 name5 

Supposons maintenant que je veux choisir fiche 1 lorsque le bouton 1 est cliqué, deuxième enregistrement lorsque le bouton 2 est cliqué et ainsi de suite .

Je vais donc écrire une requête comme

select * from MyTbl where id = @btnId . 

Note:- @btnId will have the value 1 for Button 1, 2 for Button 2 etc. 

Ou vous pouvez utiliser case statement.

Ceci est juste une idée pour accomplir le travail, mais comme d'autres l'ont mentionné, vous devriez être plus précis pour une réponse précise.

Questions connexes