2010-11-08 16 views
0

Y a-t-il un moyen de 'valider' le contenu de ma grille de données sous forme de fenêtres, qu'il s'agisse d'une copie ou non? J'ai une liste déroulante dans ma grille de données et ce que je veux faire est chaque fois que j'ajoute une nouvelle ligne, l'utilisateur sélectionne un élément de la zone de liste déroulante. La prochaine fois que l'utilisateur ajoutera une nouvelle ligne avec la même entrée que les précédentes (en double), elle ne sera pas ajoutée à la ligne.C#/WinForm: Force DataGrid à ne pas ajouter une entrée en double dans une ligne

Je pensais supprimer ou désactiver l'élément de la liste déroulante (source de données de la base de données) lors de l'ajout à la nouvelle ligne, de sorte que l'utilisateur ne sera pas en mesure de dupliquer l'enregistrement.

Quelle serait la meilleure approche pour ce problème? Les commentaires et suggestions sont les bienvenus. Je vous remercie.

Répondre

1

Vous avez l'intention de faire la bonne chose. Supprimer l'élément du combo n'est pas une mauvaise idée. Ou bien vous pouvez faire une validation au moment de l'ajout d'une nouvelle ligne pour vérifier si l'élément est déjà présent dans la grille.

0

Depuis la source de données pour votre zone de liste déroulante est à partir d'une base de données pourquoi ne pas vous modifiez simplement la requête de ne pas inclure les éléments qui sont dans les lignes de votre table, quelque chose comme

SELECT item FROM itemList WHERE item not in (SELECT item FROM userAddedRow) 
0

au lieu d'aller à la base de données vous pouvez effectuer votre opération de vérification dans votre jeu de données. Exécutez l'opération Check à partir de Dataset et, si ce n'est pas Exist, envoyez l'instruction Insert à la base de données.