2010-04-05 12 views
7

मुझे आश्चर्य है कि डेटाग्रिडव्यू में सभी पंक्तियों के माध्यम से फिर से जाने और कोशिकाओं से मूल्य प्राप्त करने का सबसे अच्छा तरीका क्या है।
मैं यही करने के बारे में सोच रहा हूं, लेकिन मुझे वास्तव में यह पसंद नहीं है क्योंकि अगर मैं कॉलम को पुनर्व्यवस्थित करता हूं तो कोड भी बदलना होगा।डेटाग्रिड व्यू के लिए, मैं प्रत्येक पंक्ति से मूल्य कैसे प्राप्त करूं?

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]; 
} 

उत्तर

11

आप DataGridView के भीतर एक foreach का उपयोग अधिक DataGridViewRow रों पुनरावृत्ति करने के लिए कर सकते हैं और से मूल्यों को पुनः प्राप्त करने के स्तंभ नाम का उपयोग 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

धन्यवाद, यही वह है जिसे मैं ढूंढ रहा था सिवाय इसके कि मुझे एक बनाना था "डॉ। कैल्स [" कर्नल 1 "] से मामूली परिवर्तन। ToString()" to "dr.Cells [" Col1 "]। Value.ToString()" – skid

+0

खुशी है कि यह आपके लिए काम करता है। मैंने अपना उत्तर किसी अन्य व्यक्ति के लिए 'वैल्यू' जोड़ने के लिए संशोधित किया जो इस उत्तर को पाता है। – CAbbott

+0

निंजा'd, मैं जोड़ने वाला था कि आपको सेल से सही डेटा प्राप्त करने के लिए मूल्य रखने की आवश्यकता है। – Justin

1

NullException इस त्रुटि आप कर सकते हैं से बचने के लिए हो सकता है उपरोक्त कोड को निम्नलिखित

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); 
} 
संबंधित मुद्दे