2009-11-03 10 views
16

मुझे कुछ समस्या मिली है, मैं डेटा डेटा को डेटाग्रिड व्यू में संग्रहीत करने के लिए डेटाटेबल का उपयोग करता हूं। डाटा इस तरह inputed किया गया था:सी # डेटाटेबल में डेटा कैसे बदलें?

dt = new DataTable(); 
dt.Columns.Add("ID", typeof(int)); 
dt.Columns.Add("par", typeof(string)); 
dt.Columns.Add("max", typeof(int)); 
dt.Columns.Add("now", typeof(int)); 

dt.Rows.Add(new object[] { id++,i + " " + j++, strarr[0], strarr[1] }); // ... etc etc 

dataGridView1.DataSource = dt; 

अब मैं कुछ परिवर्तन करना चाहते हैं, मैं कोड का उपयोग करें:

dt.Rows[1].ItemArray[3] = "VALUE"; 

जब मैं डिबग, ItemArray पंक्ति मैं करना चाहते हैं का प्रतिनिधित्व करता है, इसलिए इसकी भला है, लेकिन फिर भी मैं कोई बदलाव नहीं कर सकता, क्या गलत है? डेटाटेबल को कैसे अपडेट करें ??? मैं googling कर रहा हूँ और कुछ भी नहीं :(

उत्तर

14

dt.Rows[1].ItemArray आप आइटम सरणियों की एक प्रति देता है जब आप इसे संशोधित, आप मूल को संशोधित नहीं कर रहे हैं

आप बस कर सकते हैं:।।

dt.Rows[1][3] = "Value"; 

ItemArray संपत्ति प्रयोग किया जाता है जब आप सभी पंक्ति मानों को संशोधित करना चाहते हैं।

पूर्व .:

dt.Rows[1].ItemArray = newItemArray; 
38

SetField विधि का प्रयास करें:

table.Rows[i].SetField(column, value);
table.Rows[i].SetField(columnIndex, value);
table.Rows[i].SetField(columnName, value);

यह काम किया जाना चाहिए और एक सा "स्वच्छ" पंक्तियाँ का उपयोग कर [मैं] [जे] की तुलना में है।

+0

+1 - मैं सहमत हूं, आपका सुझाव सरणी का उपयोग करने वाले उदाहरणों की तुलना में अधिक क्लीनर है। आपका उदाहरण किसी सरणी में स्थिति द्वारा अंतर्निहित फ़ील्ड के बजाय, नाम से फ़ील्ड की स्पष्ट पहचान की अनुमति देता है। मुझे लगता है कि सरणी का उपयोग सस्ता और आलसी है। भविष्य में रखरखाव के दौरान यह निश्चित रूप से त्रुटियों का खतरा उठाता है। साथ ही, यदि डेटा तालिका ऑब्जेक्ट डेटाबेस संरचना से लिया गया है, और यदि उस डेटाबेस संरचना को बदलने के लिए, जैसे तालिका परिभाषा के बीच में कॉलम डालने, सरणी विधि का उपयोग संभावित रूप से रन-टाइम त्रुटि उत्पन्न करेगा या बदतर - ज्ञात भ्रष्ट डेटा। – barrypicker

7

आपको शायद dt.Columns["columnName"].ReadOnly = false; संपत्ति को पहले सेट करना चाहिए।

+2

dt.columns होना चाहिए [n]। केवल पढ़ने के लिए –

संबंधित मुद्दे