L’object DataView
n’a pas de propriété Rows
comme DataTable
.
Comment parcourir les lignes d’un DataView?
L’object DataView lui-même est utilisé pour parcourir les lignes DataView.
Les lignes DataView sont représentées par l’object DataRowView . La propriété DataRowView.Row permet d’accéder à la ligne DataTable d’origine.
C #
foreach (DataRowView rowView in dataView) { DataRow row = rowView.Row; // Do something // }
VB.NET
For Each rowView As DataRowView in dataView Dim row As DataRow = rowView.Row ' Do something ' Next
// Vous pouvez convertir DataView en tableau. en utilisant DataView.ToTable ();
foreach (DataRow drGroup in dtGroups.Rows) { dtForms.DefaultView.RowFilter = "ParentFormID='" + drGroup["FormId"].ToSsortingng() + "'"; if (dtForms.DefaultView.Count > 0) { foreach (DataRow drForm in dtForms.DefaultView.ToTable().Rows) { drNew = dtNew.NewRow(); drNew["FormId"] = drForm["FormId"]; drNew["FormCaption"] = drForm["FormCaption"]; drNew["GroupName"] = drGroup["GroupName"]; dtNew.Rows.Add(drNew); } } }
// Ou vous pouvez utiliser
// 2.
dtForms.DefaultView.RowFilter = "ParentFormID='" + drGroup["FormId"].ToSsortingng() + "'"; DataTable DTFormFilter = dtForms.DefaultView.ToTable(); foreach (DataRow drFormFilter in DTFormFilter.Rows) { //Your logic goes here }
Je préfère le faire de manière plus directe. Il n’a pas les lignes mais a toujours le tableau de lignes.
tblCrm.DefaultView.RowFilter = "customertype = 'new'"; qtytotal = 0; for (int i = 0; i < tblCrm.DefaultView.Count; i++) { result = double.TryParse(tblCrm.DefaultView[i]["qty"].ToString(), out num); if (result == false) num = 0; qtytotal = qtytotal + num; } labQty.Text = qtytotal.ToString();