2010-04-05 19 views
7

Bir datagrid görünümündeki tüm satırlarda yinelemenin ve değerleri hücrelerden almanın en iyi yolunun ne olduğunu merak ediyorum.
Yapmayı düşündüğüm şey şu, ama ben gerçekten sevmiyorum çünkü sütunları yeniden düzenlerseniz, kodun da değiştirilmesi gerekir.DataGridView için, her satırdaki değerleri nasıl alabilirim?

for (int i = 0; i < dataGridView.RowCount; i++) 
{ 
    string Value0 = dataGridView1.Rows[i].Cells[0]; 
    string Value1 = dataGridView1.Rows[i].Cells[1]; 
    string Value2 = dataGridView1.Rows[i].Cells[2]; 
} 
Sen DataGridView içinde DataGridViewRow s yineleme yapmak için bir foreach kullanabilir ve değerleri almak için sütun adları kullanabilirsiniz

cevap

11

Cells:

foreach (DataGridViewRow dr in dataGridView.Rows) 
{ 
    string col1 = dr.Cells["Col1"].Value.ToString(); 
    string col2 = dr.Cells["Col2"].Value.ToString(); 
    string col3 = dr.Cells["Col3"].Value.ToString(); 
} 
+1

10 Teşekkür ederim, aradığım şey şuydu: "dr.Cells [" Col1 "] 'dan küçük değişiklik. ToString()" to "dr.Cells [" Col1 "]. Value.ToString()" – skid

+0

Sizin için işe yaradığıma sevindim. Cevabımı bu cevabı bulan herkese "Değer" eklemek için değiştirdim. – CAbbott

+0

Ninja'd, Hücre'den doğru verileri almak için Değere sahip olmanız gerektiğini eklemek üzereydim. – Justin

1

NullException yapabilirsiniz Bu hatayı önlemek için oluşabilecek Yukarıdaki kodu aşağıdaki gibi değiştirin. Aşağıdaki kodu aşağıdaki gibi değiştirin:

foreach (DataGridViewRow dr in dataGridView1.Rows) 
{ 
    //variables with looop through 
    string col1 = Convert.ToString(dr.Cells["col1"].Value); 
    string col2 = Convert.ToString(dr.Cells["col2"].Value); 
    string col3 = Convert.ToString(dr.Cells["col3"].Value); 
} 
İlgili konular