मैं एक MySQL स्तंभ निर्दिष्ट किया है के रूप में:एक TINYINT (1) कॉलम से बूलियन की बजाय एक int मान कैसे प्राप्त करें?
`type` TINYINT(1) NOT NULL DEFAULT '0'
स्तंभ के इरादे 127 से अधिक नहीं के रूप में वहाँ एक बहुत कुछ वस्तु की तुलना में अधिक होने की उम्मीद नहीं कर रहे हैं एक पूर्णांक मान संग्रहीत है "प्रकार के।"
मैंने अपनी पंक्तियों में से एक के लिए मैदान में '2' संग्रहीत किया है।
SqlYog, एक सरल SELECT type FROM table
उचित परिणाम पैदावार का उपयोग करना, 2.
हालांकि, कनेक्टर/नेट का उपयोग कर 6.1.2 (वैसे यह पुराने हो चुके एक सा, क्योंकि वर्तमान संस्करण 6.5.4 है), निम्न होता है:
var Temp = Reader["type"].GetType(); // equals "Boolean"
स्तंभ इस प्रकार का आमतौर पर बूलियन मान के लिए इस्तेमाल किया है, लेकिन इस मामले में मैं पूर्णांक मान प्राप्त करना चाहते हैं।
int i = Reader.GetInt32("type"); // equals 1 (should be 2)
एक TINYINT (1) एक .NET अनुप्रयोग में उपयोग करते हुए स्तंभ कनेक्टर/नेट से पूर्णांक मान प्राप्त करने के लिए उचित तरीका क्या है: निम्नलिखित अपेक्षित परिणाम उपज के लिए विफल रहता है?
यह MySQL संस्करण का उपयोग कर रहा है 5.5.16
आप सही कर रहे हैं; 'टिन्यिनट' आमतौर पर बूलियन के लिए प्रयोग किया जाता है। मैं केवल एक नियमित 'INTEGER' प्रकार फ़ील्ड का उपयोग करने का सुझाव दूंगा, भंडारण स्थान * वह * महंगा नहीं हो सकता है। ;) –
क्या आपने टेबल से 'प्रकार का चयन करें (टाइप के रूप में हस्ताक्षर किए) टाइप किया है? –
संग्रहण कोई समस्या नहीं है; लेकिन मेरी चिंता गति/प्रदर्शन के लिए अधिक थी। यदि मुझे पता है कि कोई विशेष मान सीमा से अधिक नहीं होगा, तो मैं उचित रूप से कॉलम को आकार देने का प्रयास करता हूं। (यही कारण है कि मेरे सभी int कॉलम 'बिगिनट' नहीं हैं। :)) शायद मुझे सिर्फ 'स्मालिन' का उपयोग करना चाहिए और इसे एक दिन कॉल करना चाहिए, लेकिन मैं इस मामले पर और अधिक तकनीकी पृष्ठभूमि ढूंढना चाहता था। – JYelton