2014-02-21 41 views
1
public String getSum(String code) 
{ 
     SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor =db.query(TABLE_OWNER, new String[] { KEY_SUM }, KEY_CODE + "=?", new String[] { code }, null, null, null, null); 
    String data = cursor.getString(cursor.getColumnIndex("data")); 
     return data; 
    } 

我想獲取數據「KEY_SUM」,但它沒有得到它。我該怎麼做?如何從光標檢索數據?

public String getSum(String code) { 
    SQLiteDatabase db = this.getReadableDatabase(); 


    Cursor cursor =db.query(TABLE_OWNER, new String[] { KEY_SUM }, KEY_CODE + "=?", new String[] { code }, null, null, null, null); 

    String data = "0"; 
    if (cursor.moveToFirst()) 
    { 
     data = cursor.getString (cursor.getColumnIndex (KEY_SUM)); 
    } 
    return data; 
} 

我執行後,我無法獲得價值。我只得到了0

+0

你得到任何錯誤? – Sonali8890

+1

在獲取任何值之前,必須將光標移動到第一條記錄... cursor.moveToFirst(); –

+0

試試這個 - 'if(cursor.moveToFirst()){String data = cursor.getString(cursor.getColumnIndex(KEY_SUM))}' – Vino

回答

0

你需要從遊標中讀取數據,如低於之前寫moveToFirst();

public String getSum(String code) 
{ 
    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.query(TABLE_OWNER, new String[] { KEY_SUM }, KEY_CODE + "=?", new String[] { code }, null, null, null, null); 

    if (cursor.getCount() > 0) 
    { 
     cursor.moveToFirst();           // Add this line 
     String data = cursor.getString(cursor.getColumnIndex("data")); 
     return data; 
    } 
    return null; 
} 
+0

YES!確切地說,它的工作原理。非常感謝。 – user3336747

1

移動光標在像第一記錄:

Cursor mCursor =db.query(TABLE_OWNER, new String[] { KEY_SUM }, KEY_CODE + "=?", new String[] { code }, null, null, null, null) 

if (mCursor != null) { 
     mCursor.moveToFirst(); 
String data = cursor.getString(cursor.getColumnIndex("data")); 
    } 
0
SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.query(TABLE_OWNER, new String[] { KEY_SUM }, KEY_CODE + "=?", new String[] { code }, null, null, null, null); 
    if (cursor != null) { 
     cursor.moveToFirst(); 
     if (cursor.getCount() > 0) { 
      while (cursor.isAfterLast() == false) { //You need to check if cursor doesnot contain last row 
       String data = cursor.getString(cursor.getColumnIndex("data")); 
       cursor.moveToNext(); 
      } 
     } 
    }