2012-11-19 14 views
7

की सूची है I SO पर कोई प्रश्न नहीं मिला कि बिल्कुल मेरी समस्या से मेल खाता है।त्रुटि: "DataGridViewComboBoxCell मान मान्य नहीं है।" t डेटासोर्स मूल प्रकार

this question और this question के समान, मैं DataSource को DataGridViewComboBoxColumn पर चीजों की सूची में सेट कर रहा हूं। मेरे मामले में चीजें सरल प्रकार हैं जैसे कि युगल और स्याही, इसलिए ValueMembers और DisplayMembers के बारे में बात करने वाले उत्तर मुझे बहुत अच्छा नहीं करते हैं। जब उपयोगकर्ता कोई मान चुनता है तो मुझे डर लगता है "DataGridViewComboBoxCell मान मान्य नहीं है" त्रुटि।

मैं एक खाली डेटा GridView_DataError हैंडलर के साथ त्रुटि निगल सकता है, लेकिन यह स्पष्ट रूप से जाने का एक बुरा तरीका है।

उत्तर

18

मुझे उत्तर here मिला। यह मेरे प्रश्न में दूसरे लिंक पर this answer में भी उल्लेख किया गया है। जब कि एक स्ट्रिंग नहीं है कुछ भी की एक सूची के लिए DataSource की स्थापना, typeof(<your data type>)

 IList<double> kvChoices; 
     // Populate kvChoices... 
     DataGridViewComboBoxColumn kvCol = 
      dataGridView1.Columns[0] as DataGridViewComboBoxColumn; 
     kvCol.DataSource = kvChoices; 
     kvCol.ValueType = typeof(double); 
+1

चाल था ' kvCol.ValueType = टाइपऑफ (डबल); धन्यवाद – 56ka

+1

नोट: मैं आमतौर पर डिजाइन समय पर अपने ग्रिड को कॉन्फ़िगर करता हूं। ValueType प्रॉपर्टी डिज़ाइन समय पर उपलब्ध नहीं है इसलिए मैंने निम्नलिखित फॉर्म को मेरे Form_Load रूटीन में रखा है: gridSequences.Columns [Year.Name]। ValueType = typeof (Int32) –

0

इस उप-प्रकारों के बारे में नकचढ़ा है करने के लिए स्तंभ की ValueType निर्धारित किया है। जब भी ValueType Int था, तब भी मुझे त्रुटि मिली, लेकिन डेटासोर्स में SQLServer SMALLINT शामिल था (जो डेटासोर्स पर एक विजुअल स्टूडियो 2010 क्विक-वॉच ने कहा था एक Int32 था!)। SMALLINT से डीबी कॉलम बदलना -> INT ने इसे मेरे लिए तय किया।

0

मेरे लिए समस्या यह है कि मूल्य मेरे डेटा स्रोत लौट रहा था बता गया में उपलब्ध नहीं था था .... मेरी कॉम्बो मान 1, 2 और 3 था ... लेकिन डेटा स्रोत चाहता था 4.

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