नहीं कर सकता हूं। मैं System.Data.SQLite का उपयोग कर रहा हूं, एक SQLite डेटाबेस तालिका से चयन कर रहा हूं जहां एक कॉलम में 'पूर्णांक' टाइप होता है, और जब मैं ऐसा कुछ करता हूं:जब मैं 'int' प्रकार के स्क्लाइट कॉलम से चयन करता हूं, तो मैं .NET int पर जा सकता हूं लेकिन जब मैं 'पूर्णांक' कॉलम से चुनता हूं तो मैं
int x = (int)reader["myColumn"];
यह विफल रहता है। समस्या यह नहीं है कि मूल्य शून्य है; कॉलम शून्य नहीं है। यदि मैं कॉलम के डेटा प्रकार को 'int' में बदलता हूं तो यह ठीक काम करता है। कॉलम में मान '2', '3', '4', आदि हैं; कुछ भी बड़ा नहीं है।
कोई भी जानता है कि यह व्यवहार की अपेक्षा की जाती है?
मैं वास्तव में 'लंबे x = (लंबे) पाठक ["myColumn"] की खोज के बाद खुद को जवाब देने के लिए इस प्रश्न पर लौट रहा था;' ठीक काम करता है। आप बिल्कुल सही हैं - यह एक इंट 64 था - इसलिए बस लंबे चर का उपयोग करना मेरे लिए काम करेगा। इस कारण व्यवहार INT और INTEGER के लिए अलग-अलग काम करता है, यह अभी भी मेरे लिए अजीब है। मैं तालिका में समान डेटा मानों के लिए INT/INTEGER से कास्टिंग की सफलता/विफलता दोहरा सकता हूं, और समस्या को किसी अन्य तालिका में भी दोहरा सकता हूं। संभवतः चालक में थोड़ी सी असंगतता। – Rory