আমি কীভাবে একটি বুলিয়ান ক্ষেত্রের মান পেতে পারি অ্যান্ড্রয়েডের এসকিউএলাইট ডাটাবেসে ?
আমি সাধারণত ব্যবহার getString()
, getInt()
ইত্যাদি আমার ক্ষেত্র মান পেতে, কিন্তু একটি হবে বলে মনে হচ্ছে না getBoolean()
পদ্ধতি।
আমি কীভাবে একটি বুলিয়ান ক্ষেত্রের মান পেতে পারি অ্যান্ড্রয়েডের এসকিউএলাইট ডাটাবেসে ?
আমি সাধারণত ব্যবহার getString()
, getInt()
ইত্যাদি আমার ক্ষেত্র মান পেতে, কিন্তু একটি হবে বলে মনে হচ্ছে না getBoolean()
পদ্ধতি।
উত্তর:
এইটা:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
যদিও বাইটে সংক্ষিপ্ত: পি
এসকিউএলাইটে কোনও বুলি ডেটা টাইপ নেই। এই প্রভাবটি অর্জন করতে আপনি 0 বা 1 এ স্থির করে এমন কোনও ব্যবহার করুন। দেখুন datatypes রেফারেন্স উপর SQLite 3.0 ।
boolean value = (cursor.getInt(boolean_column_index) == 1);
এখানে বেশিরভাগ উত্তরগুলির ফলাফল সংখ্যার ফর্ম্যাটেক্সেক্সেসস বা "অপারেটর নাল, ইনট" টাইপগুলির জন্য অপরিজ্ঞাপিত হতে পারে যদি আপনি কলামটি ইনট সঞ্চিত রাখতেন তবে নালাকে ধরে রাখার অনুমতি দেওয়া হয়েছিল। এটি করার জন্য শালীন উপায়টি ব্যবহার করা হবে
Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`
যদিও আপনি এখন 0 বা 1 এর পরিবর্তে "সত্য" এবং "মিথ্যা" স্ট্রিংগুলি সঞ্চিত করতে সীমাবদ্ধ।
অরমলাইট কার্সারে পাওয়া একটি বাস্তবায়ন নুলের জন্যও পরীক্ষা করে যা অন্য উত্তরগুলির কোনওটিই করে না।
public boolean getBoolean(int columnIndex) {
if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
return false;
} else {
return true;
}
}
আপনি ব্যবহার করতে পারেন
boolean value =cursor.getString(boolean_column_index).equals("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;
}