حلقات من خلال الصفوف في DataView
سؤال
على DataView
كائن لا Rows
الخاصية مثل DataTable
.
كيف يمكنني حلقة من خلال صفوف من DataView?
المحلول
DataView كائن نفسها المستخدمة في حلقة من خلال DataView الصفوف.
DataView الصفوف ممثلة DataRowView الكائن.على DataRowView.الصف مكان الإقامة يوفر الوصول إلى الأصل DataTable الصف.
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
نصائح أخرى
<اقتباس فقرة>
و// يمكنك تحويل DataView إلى جدول. باستخدام 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);
}
}
}
<اقتباس فقرة>
و// أو يمكنك استخدام
و// 2.
اقتباس فقرة>dtForms.DefaultView.RowFilter = "ParentFormID='" + drGroup["FormId"].ToString() + "'";
DataTable DTFormFilter = dtForms.DefaultView.ToTable();
foreach (DataRow drFormFilter in DTFormFilter.Rows)
{
//Your logic goes here
}
وأنا نفضل ان نفعل ذلك بطريقة أكثر مباشرة. انها لا تملك الصفوف ولكن لا تزال لديه مجموعة من الصفوف.
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();
لا تنتمي إلى StackOverflow