2009-09-15 15 views

Trả lời

114

Đối tượng DataView được sử dụng để lặp qua các hàng DataView.

Hàng dữ liệu được đại diện bởi đối tượng DataRowView. Thuộc tính DataRowView.Row cung cấp quyền truy cập vào hàng DataTable gốc.

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 
2

// Bạn có thể chuyển đổi DataView bảng. bằng cách sử dụng DataView.ToTable();

foreach (DataRow drGroup in dtGroups.Rows) 
{ 
    dtForms.DefaultView.RowFilter = "ParentFormID='" + drGroup["FormId"].ToString() + "'"; 

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

// Hoặc Bạn có thể sử dụng

// 2.

dtForms.DefaultView.RowFilter = "ParentFormID='" + drGroup["FormId"].ToString() + "'"; 

DataTable DTFormFilter = dtForms.DefaultView.ToTable(); 

foreach (DataRow drFormFilter in DTFormFilter.Rows) 
{ 
          //Your logic goes here 
} 
0

tôi thích để làm điều đó một cách trực tiếp hơn. Nó không có hàng nhưng vẫn có dãy các hàng.

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