2009-10-30 7 views
1

Espérons que ce soit simple, mais que vous ne trouvez pas une telle option.Déplacement vers un enregistrement spécifique dans un DataTable

J'ai une table de données - a dit ... 10 rangées dedans. Certains champs du formulaire sont liés aux tables.colonnes respectivement par nom.

Sur un autre formulaire qui a une grille, lorsque je fais défiler la grille, les champs de détail sont actualisés comme prévu car la grille fait un peu de magie pour déclencher l'événement de modification d'enregistrement DataTable.

SANS utiliser une grille de données, Comment puis-je diriger la table pour aller à une ligne spécifique pour le rafraîchissement de charge/d'affichage sur la forme ... ex:

DataTable MyTable = new DataTable(); 

MyTable = GetResultsFromSQL(); // returns the 10 rows 

MyTable.LoadTheDataForRow(3); 
MyTable.LoadTheDataForRow(7); 
MyTable.LoadTheDataForRow(2); 

Je sais que je peux utiliser une rangée de foreach dans la table, mais nécessitent une utilisation explicite car je ne veux pas passer par toutes les lignes, mais j'ai besoin de la spécificité de celles spécifiques.

J'ai regardé LoadDataRow(), mais cela semble être pour renvoyer des données à un serveur. Pas ce que je veux ... Je veux juste avoir la « actuelle » ligne de la table pour être d'un particulier ...

Merci

Après d'autres recherches, j'ai trouvé qu'un formulaire basé contrôle "BindingSource" (ou dérivé) permet cela, comme une grille. Mais, évidemment, il y a quelque chose que le moteur .Net fait sous le capot pour finalement "charger" une ligne donnée dans quelque chose qui finit par revenir à la "BindingSource" ... Le DataTable a des événements RowChanging et RowChanged qui semblent être déclenchés par OnRowChanging/OnRowChanged délégués, mais comment pouvons-nous dire à la table de données quelle "ligne" nous voulons qu'il soit actif. Les contrôles de formulaire peuvent le faire pour leurs sources de liaison, mais ce qui se passe vraiment sous le capot pour déclencher ces événements OnRowChanging ... Je ne veux pas recharger une table de données, lignes, etc, juste changer ce qui est considéré comme la ligne "active", comme dans une grille, ListBox, ComboBox, etc.

Répondre

1

Avez-vous essayé:

MyDataTable.Rows[3]; 
MyDataTable.Rows[7]; 
MyDataTable.Rows[2]; 
+0

Non ... qui revient comme erreur affectation uniquement, appel, incrément, décrémentation et de nouvelles expressions d'objet peuvent être utilisées comme une instruction – DRapp

Questions connexes