الحصول على النص فقط من عمود معين من داتاغريدفيف

StackOverflow https://stackoverflow.com/questions/816618

  •  03-07-2019
  •  | 
  •  

سؤال

ولدي داتاغريدفيف أن يتم تعبئة مع 4 أعمدة وصفوف متعددة من البيانات. أريد أن تكرار خلال داتاغريدفيف والحصول على قيمة خلية من عمود معين فقط ، منذ أن كنت في حاجة إلى هذه البيانات لتنتقل إلى أسلوب.

وهنا هو رمز بلادي:

foreach (DataGridViewRow row in this.dataGridView2.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells)
    {
        if (cell.Value == null || cell.Value.Equals(""))
        {
            continue;
        }

        GetQuestions(cell.Value.ToString());  
    }
}

وهذا يبدو فقط للذهاب من خلال جميع الخلايا، ولكن أنا بحاجة إلى أن تكون قادرة على تحديد شيء من هذا القبيل:

foreach (DataGridViewRow row in this.dataGridView2.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells[2])//Note specified column index
    {
        if (cell.Value == null || cell.Value.Equals(""))
        {
            continue;
        }
        GetQuestions(cell.Value.ToString());
    }
}
هل كانت مفيدة؟

المحلول

ولا تريد فقط لإزالة حلقة foreach الداخلية؟ أو أن يكون فاتني شيء؟

foreach (DataGridViewRow row in this.dataGridView2.Rows)
{                            
    DataGridViewCell cell = row.Cells[2]; //Note specified column index
    if (cell.Value == null || cell.Value.Equals(""))
    {
        continue;
    }

    GetQuestions(cell.Value.ToString());
}

نصائح أخرى

foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
   DataGridViewCell cell = row.Cells["foo"];//Note specified column NAME
   {
      if (cell != null && (cell.Value != null || !cell.Value.Equals("")))
      {
         GetQuestions(cell.Value.ToString());
      }
   }
}

وربما يمكن أن تحقق من ColumnIndex؟ سوف لا يزال يتكرر خلال كافة الخلايا بالرغم من ذلك.

if (cell.Value == null || cell.Value.Equals("") || cell.ColumnIndex != 2)
{
    continue;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top