سؤال

على 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();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top