मैं एंड्रॉइड पर SQLite डेटाबेस में बूलियन फ़ील्ड का मूल्य कैसे प्राप्त कर सकता हूं ?
मैं आमतौर पर उपयोग करें getString()
, getInt()
आदि मेरी क्षेत्रों के मूल्यों को प्राप्त करने के लिए, लेकिन वहाँ एक होना प्रतीत नहीं होता है getBoolean()
विधि।
मैं एंड्रॉइड पर SQLite डेटाबेस में बूलियन फ़ील्ड का मूल्य कैसे प्राप्त कर सकता हूं ?
मैं आमतौर पर उपयोग करें getString()
, getInt()
आदि मेरी क्षेत्रों के मूल्यों को प्राप्त करने के लिए, लेकिन वहाँ एक होना प्रतीत नहीं होता है getBoolean()
विधि।
जवाबों:
यह है:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
बाइट्स में छोटा है, हालांकि: पी
SQLite में कोई बूल डेटा प्रकार नहीं है। उस प्रभाव को प्राप्त करने के लिए 0 या 1 को ठीक करने वाले int का उपयोग करें। SQLite 3.0 पर डेटाटिप्स संदर्भ देखें ।
boolean value = (cursor.getInt(boolean_column_index) == 1);
यहां अधिकांश जवाब नं .FormatException में हो सकते हैं या "ऑपरेटर प्रकार null, int" के लिए अपरिभाषित है, यदि आपने जिस कॉलम में int संग्रहीत किया है वह भी शून्य रखने की अनुमति दी गई थी। ऐसा करने का सभ्य तरीका उपयोग करना होगा
Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`
हालाँकि अब आप 0 या 1 के बजाय स्ट्रिंग्स को "सही" और "गलत" स्टोर करने तक सीमित हैं।
Ormlite Cursor में पाया गया कार्यान्वयन Null के लिए भी जाँच करता है, जो अन्य उत्तरों में से कोई भी नहीं करता है।
public boolean getBoolean(int columnIndex) {
if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
return false;
} else {
return true;
}
}
खैर, यह बहुत आसान है:
public boolean getBooleanState(SQLiteDatabase db){
boolean result = false;
try{
String QUERY = "SELECT " + BOOLEAN_DATA + " FROM " + TABLE_NAME + " WHERE " + ID + " = 1";
Cursor cursor = db.rawQuery(QUERY, null);
if (cursor.moveToFirst()){
if(cursor.getString(0).equalsIgnoreCase("1")){
result = true;
}
}
c.close();
}catch(Exception ee){
Log.e(TAG, "err getBooleanState: " + TABLE_NAME );
}
return result;
}