Traverser des lignes dans un DataView

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();