Comment puis-je Obtenir Sélectionnés DataRow dans un DataGridView?
J'ai un DataTable lié à un DataGridView. J'ai FullRowSelect activé dans la DGV. Est-il un moyen d'obtenir la ligne sélectionnée comme un DataRow afin que je puisse obtenir fortement typé l'accès à la ligne sélectionnée valeurs?
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de savoir comment faire w/o un BindingSource, voici comment le faire avec un:
Il est possible par l'obtention de la propriété suivante:
On obtient une collection de type: DataGridViewSelectedRowCollection. Il contient des éléments de type: DataGridViewRow.
Alors on peut obtenir bounditem avec son propre type de la manière suivante:
Vous devriez être capable de lancer votre ligne sélectionnée dans la fortement typé ligne qui a été liée à la DataGridView.
De l'essayer.
DataRow row = gridView1.GetDataRow(gridView1.FocusedRowHandle);
if (row != null)
{
XtraMessageBox.Show(row["ID"].ToString());
}
else
return;
Si vous avez lié votre datagridview à une table ou une vue dans une base de données, vous pouvez obtenir les données en tant que fortement typées objet.
Cette réponse, c'est pour un formulaire Windows connecté à une base de données en utilisant un ensemble de données au moment de la conception. Exemple nom est DataSet1, et exemple nom de la table est Customer_Info.
Ce lien est la réponse. J'espère avoir plus de clarté et un exemple ci-dessus.
https://social.msdn.microsoft.com/Forums/windows/en-US/f252e395-58e6-4703-ba7b-0740efcbecf3/can-i-convert-the-selected-row-in-a-bound-datagridview-to-a-typed-datarow?forum=winformsdatacontrols
Ce lien affiche les données par programmation ajoutés à la source de données, ne tirant que des données provenant d'une base de données existante. Cela m'a fait une partie du chemin vers la réponse:
https://msdn.microsoft.com/en-us/library/4wszzzc7(v=vs. 110).aspx
Il n'est pas possible d'avoir fortement typé accès à un datagridview si un tableadapter n'est pas utilisé à l'intérieur de l'ensemble de données.
D'avoir accès à des variables fortement typées quand un datagridview est lié à un datatable dans une bindingsource, procédez comme suit:
Créer un Nouveau Projet.
Insérer un jeu de données nommé ds1 et d'une DataTable nommé dt99 avec des colonnes nommées DataColumn1 et DataColumn2, les deux type de chaîne.
Ajouter un datagridView pour le formulaire principal et le lier à la dt99
De sorte que le dt99BindingSource relie le datagridview et la datatable
D'ajouter et de gestionnaire d'événements pour le Changement de Sélection de la datagridview, et insérer le bout de code suivant
private void dataGridView1_SelectionChanged(Object sender, EventArgs e)
{
}
Maintenant, vous avez fortement variables de type (d.DataColumn1 et d.DataColumn2) pour accéder aux cellules d'être sélectionné sur le datagridview
Une autre caractéristique intéressante est qu'un datatable inséré à l'intérieur d'un ensemble de données fournit un ensemble de classes publiques qui aide beaucoup lors de la manipulation des tables de données, par exemple