System.argumentoutofrangeexception: ‘सूचकांक सीमा से बाहर था। गैर-नकारात्मक और संग्रह के आकार से कम होना चाहिए। पैरामीटर नाम: सूचकांक’


private void ItemGV_CellClick(object sender, DataGridViewCellEventArgs e)
       {
           if (e.RowIndex >= 0)
           {
               txtItemnum.Text = ItemGV.SelectedRows[0].Cells[0].Value.ToString();
               txtItemname.Text = ItemGV.SelectedRows[0].Cells[1].Value.ToString();
               comboCat.SelectedItem = ItemGV.SelectedRows[0].Cells[2].Value.ToString();
               txtitemprice.Text = ItemGV.SelectedRows[0].Cells[3].Value.ToString();
               //txtemail.Text = UserGV.SelectedRows[0].Cells[4].Value.ToString();
           }

मैंने क्या प्रयास किया है:

क्लिक इवेंट पर मैं कोड लिख रहा हूं, टेक्स्टबॉक्स में ग्रिड मान प्राप्त करें

समाधान 1

हम आपको यह नहीं बता सकते कि “यह वहां है!” क्योंकि हमें आपके कोड को आपके डेटा के साथ चलाने की आवश्यकता होगी ताकि यह पता लगाया जा सके कि यह कहां हो रहा है, और कौन से मान समस्या का कारण बन रहे हैं – और इससे पहले कि आप देखना शुरू करें, आपको इसकी आवश्यकता है क्यों यह गलत है!

हम बस इतना कर सकते हैं कि यह बताएं कि यह समस्या क्यों पैदा कर रहा है। C# में ऐरे एक इंडेक्स के माध्यम से एक्सेस किए गए मानों का एक क्रम है: और वह इंडेक्स शून्य और “मानों की संख्या शून्य से एक” के बीच होना चाहिए। इसलिए यदि आपके पास उदाहरण के लिए पांच पूर्णांकों वाली एक सरणी है, तो मान्य सूचकांक 0, 1, 2, 3 और 4 हैं। अन्य सभी सूचकांक एक त्रुटि देंगे क्योंकि जिस मान से आप निपटने का प्रयास कर रहे हैं वह मौजूद नहीं है।
तो आप कह सकते हैं:

सी#
i = arr[0];
i = arr[1];
i = arr[2];
i = arr[3];
i = arr[4];

लेकिन नहीं:

सी#
i = arr[-1];
i = arr[5];
i = arr[666];

और आपका कोड कई सरणियों का उपयोग करता है, जिनमें से कोई भी समस्या का स्रोत हो सकता है।

तो, यह आप पर निर्भर करेगा।
सौभाग्य से, आपके पास एक उपकरण उपलब्ध है जो आपको यह पता लगाने में मदद करेगा कि क्या हो रहा है: डिबगर। यदि आप नहीं जानते कि इसका उपयोग कैसे करना है, तो “विज़ुअल स्टूडियो डिबगर” के लिए एक त्वरित Google आपको आवश्यक जानकारी देगा।

फ़ंक्शन में पहली पंक्ति पर ब्रेकपॉइंट लगाएं, और डीबगर के माध्यम से अपना कोड चलाएं। फिर अपने कोड और अपने डेटा को देखें और पता लगाएं कि मैन्युअल रूप से क्या होना चाहिए। फिर एक चरण में प्रत्येक पंक्ति की जाँच करें कि आपने जो होने की उम्मीद की थी वही हुआ। जब ऐसा नहीं होता है, तब आपको कोई समस्या होती है, और आप इसका कारण जानने के लिए बैक-ट्रैक कर सकते हैं (या इसे फिर से चला सकते हैं और अधिक बारीकी से देख सकते हैं)।

एक अनुमान के अनुसार, चयनित आइटम संग्रह खाली है, या ग्रिड में अपर्याप्त कॉलम हैं, लेकिन आपको यह बताने के लिए अपने डेटा के साथ चलने वाले कोड की आवश्यकता है।

क्षमा करें, लेकिन हम आपके लिए ऐसा नहीं कर सकते – यह आपके लिए एक नया (और बहुत, बहुत उपयोगी) कौशल सीखने का समय है: डिबगिंग!

コメント

タイトルとURLをコピーしました