Đối tượng DataView
không có thuộc tính Rows
như DataTable
.Lặp qua các hàng trong một DataView
Làm cách nào để lặp qua các hàng của một DataView?
Đối tượng DataView
không có thuộc tính Rows
như DataTable
.Lặp qua các hàng trong một DataView
Làm cách nào để lặp qua các hàng của một DataView?
Đố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
// 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
}
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();