2012-01-31 23 views
5

बहुत सरल कार्य यह प्रतीत होता है निम्नलिखित Android ऐप्लिकेशन में मेरी SQLite DB में रिकार्ड/पंक्तियों दी गई श्रेणी प्राप्त करने की कोशिश:एंड्रॉयड SQLite "के बीच" समावेशी या रिटर्न नहीं सभी रिकॉर्ड

String[] projection = {"_id"}; 
String selection = "_id between ? and ?"; 
String[] selectionArgs = {"1", "10"}; 

queryBuilder.query(db, projection, selection, selectionArgs, null, null, null); 
साथ

ऊपर selectionArgs मैं अगर मैं किसी और मैं बहुत (रिकार्ड/पंक्तियों के पूरे सेट) हो रही है के रूप में अगर कोई शर्त था कुछ भी करने के लिए आर्ग बदल सिर्फ दो पंक्तियाँ, पंक्ति 1 और 10 हो रही है। एक दिन के लिए मेरे सिर को टक्कर लगी है, यह इस तरह से काम करता है, शायद SQLite में "बीच" के उपयोग के बारे में जानने के लिए कुछ विशेष बात है? कोई टिप्पणी/मदद बहुत सराहना की।

उत्तर

0

अपनी तरफ मैं जाँच से समस्या लगता है और यह ठीक काम करता है,

विधि

public Cursor GetBetween(String[] projection,String selection, String[] args){ 
     return db.query(TBL_NAME, projection, selection, args, null, null, null); 
    } 

कार्यान्वयन

 String[] projection = new String[]{"_id"}; 
     String[] selectionArgs = new String[]{"1","3"}; 
     String selection = "_id between ? and ?"; 
     Cursor cursorGetBetween = helper.GetBetween(projection,selection, selectionArgs); 
     startManagingCursor(cursorGetBetween); 
     cursorGetBetween.moveToFirst(); 
     while(!cursorGetBetween.isAfterLast()){ 
      Log.d("value of cursorGetBetween", cursorGetBetween.getString(0)); 
      cursorGetBetween.moveToNext(); 
     } 

आउटपुट

01-31 18:42:58.176: D/value of cursorGetBetween(647): 1 
01-31 18:42:58.176: D/value of cursorGetBetween(647): 2 
01-31 18:42:58.176: D/value of cursorGetBetween(647): 3 
+0

मुझे एक सूची तैयार करने के लिए मेरी क्वेरी से कर्सर वापस करने की आवश्यकता होगी। और हां, मैंने SQLiteDatabase की क्वेरी और rawQuery विधियों का भी प्रयास किया है, दोनों मेरे मूल प्रश्न के समान सटीक परिणामों के साथ। – fissk

+0

यह ठीक काम करता है क्योंकि मैंने इसे चेक किया था। –

+0

ओह आदमी .. यह केवल यह और भी रहस्यमय .. मैं वास्तव में जांच करने के लिए कितने परिणाम मेरी कर्सर वापसी करता है की कोशिश की है, उम्मीद है जिस तरह से यह परिणाम प्रदर्शित करता है में कुछ त्रुटि हुई बनाता है, लेकिन यह मेरी प्रारंभिक परिणाम पुष्टि करता है। मुझे नहीं पता कि जो भी यह क्यों हो रहा है .. ठीक कोड आप ऊपर है का उपयोग कर .. – fissk

1

आप इस कोड का उपयोग कर सकते हैं।

private SQLiteDatabase productDatabase; 
    public Cursor get_result(){ 
    Cursor c; 
    String sql = "SELECT * FROM " + tableName +"WHERE _id BETWEEN" + value1 +"AND" + value2; 
    c = productDatabase.rawQuery(sql, null); 
} 

Cursor cursor=get_result(); 
    if(cursor.moveToNext()){ 
    Log.d("count of product id="+cursor.getString(0)); 
} 

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

  • कोई संबंधित समस्या नहीं^_^