0
votes

C # - Implémentation Enum dans un bouton (Créez un nouvel enregistrement)

J'essaie de mettre en œuvre un énumé dans un bouton Enregistrer (qui insère de nouveaux enregistrements dans un DB connecté à l'application Visual Studio Winforms).

Dans ce cas, j'ai des livres et des tables de catégorie. La catégorie est également une clé étrangère dans la table des livres (comme CatégorieID, qui devrait accepter uniquement le type de données INT).

avec celui-ci, je voudrais que l'application comprenne / convertissait une valeur de chaîne à une valeur INT, Par exemple:

Si j'entraîne la valeur "Historique" dans la zone Textbox de la catégorie dans l'application et remplissez le reste des détails nécessaires pour insérer un nouvel enregistrement de livre dans dB et enfin cliquez sur le bouton Enregistrer, J'ai besoin de l'application pour comprendre que "l'historique" refléterait un identifiant (dans ce cas, ID: "4") dans la table de catégories.

En bref, je ne veux pas saisir des valeurs INT dans le Application - Je veux taper le nom de la catégorie dans la zone de texte de la catégorieId. xxx


0 commentaires

3 Réponses :


0
votes

Créer un Enum Pour vos catégories, par exemple: xxx

alors vous pouvez écrire: xxx

Qui imprimera 4 si txtcategory contient "historique".


0 commentaires

0
votes

Si je comprends bien votre question correctement, il existe différentes approches pour ce que vous essayez de réaliser. Où voulez-vous que «Enum» soit originaire de? Vous pouvez réellement faire une énumération avec des catégories et leur valeur respectable et l'afficher à l'utilisateur pour choisir, comme: xxx

comme répondit IAKOBSKI et vous pouvez également obtenir ces catégories d'une base de données (Ainsi, les rendre dynamiques, par exemple, vous pouvez ajouter et supprimer des catégories de la liste sans la nécessité de modifier le code statique, de la compiler et de réappliquer). Habituellement, la pratique courante dans la plupart des cas stocke en effet de telles valeurs dans une base de données, dans une table avec des colonnes d'un identifiant et de la catégorieName.


2 commentaires

Merci à vous deux pour conseiller - oui, c'est ce que je veux (et je travaille aussi avec une base de données oui). Mon autre question est - l'énumé doit-elle être mise en œuvre dans la méthode Bouton Save ou en dehors de celui-ci, s'il vous plaît?


@ Avner1169 Eh bien, cela dépend de la façon dont vous allez l'utiliser. La pratique courante est toujours de se pencher vers la réutilisabilité, de sorte que la fonctionnalité doit être en dehors de la méthode btnsave_click , de sorte que vous puissiez l'utiliser dans plus d'endroits et non seulement là, mais si vous n'avez pas l'intention d'utiliser Il ailleurs, je suppose que cela peut être à l'intérieur de cette méthode. Fondamentalement, cela dépend de vous ...



0
votes

Si je saisis la valeur "Historique" dans la catégorie Textbox dans le application et remplissez le reste des détails nécessaires pour insérer un Nouvel enregistrement de livres dans dB et enfin cliquez sur le bouton Enregistrer, j'ai besoin de la application pour comprendre que "l'histoire" refléterait un identifiant (dans cette CAS, ID: '4') dans la table de catégories.

sauf si vous avez des règles d'entreprise liées à des valeurs spécifiques émunes , je suggère de ne pas faire fonctionner les valeurs de l'application et de charger les valeurs de catégorie et d'identité d'une base de données Catégorie table. Cela peut également assurer une intégrité de données avec une relation de clé étrangère avec la table et permettre d'ajouter de nouvelles catégories sans changement de code.

Une meilleure expérience utilisateur serait une combinaison / liste que les utilisateurs à choisir par nom au lieu de la zone de texte de formulaire libre. Le code peut ensuite utiliser l'ID de la valeur sélectionnée sans validation ou recherche supplémentaire pour l'insertion et la base de données.

sur une note distincte, utilisez des requêtes paramétrées pour améliorer les performances et la sécurité. On ne devrait jamais construire des requêtes SQL à l'aide de la concaténation de chaînes provenant de sources non approuvées.


0 commentaires