Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

itération à travers les lignes d'une grille de données

Utilisez un DataGridRow pas un DataRow ce sont des objets différents

foreach (DataGridRow drv in PGIPortfolio.Items)

Cependant, il n'est pas clair ce qu'est Items dans ce contexte. En supposant que PGIPortfolio est le DataGridView, votre boucle doit être écrite comme

foreach (DataGridRow drv in PGIPortfolio.Rows)

MODIFIER J'ai supposé que vous utilisiez le contrôle DataGridView dans WinForms, pas le WPF DataGridDans ce cas, l'approche correcte consiste à utiliser la propriété ItemsSource.
Veuillez essayer ce code....

    var itemsSource = PGIPortfolio.ItemsSource as IEnumerable;
    if (itemsSource != null)
    {
        foreach (var item in itemsSource)
        {
            var row = PGIPortfolio.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
            if (row != null) 
            {
               .....
            }

        }
    }