2017-06-29 43 views
0

條款我試過下面的代碼返回與其中的Android查詢中使用WHERE在android系統

public Cursor getData(String text) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    String[] columns = new String[]{"Client","Action","Value","Period"}; 
    Cursor cr = db.query("phrase_table",columns,"phrase = ?",new String[]{text},null,null,null); 
    return cr; 
} 

然而條款,光標僅返回「客戶」多列的值無法從多個列中獲取數據列值。下面是光標字符串代碼:

Cursor c = vdb.getData(text); 
    ArrayList<String> line= new ArrayList<>(); 
    if (c.moveToFirst()) { 
     do{ 
      line.add(c.getString(0)); 
     }while(c.moveToNext()); 
    } 
    String resc=""; 
    for(String a:line){ 
     resc += a; 
    } 
    Toast.makeText(this,resc,Toast.LENGTH_LONG).show(); 

試過這一個了:

Cursor c = vdb.getData(text); 
    String line = ""; 
    if (c.moveToFirst()) { 
     do{ 
      line += c.getString(0); 
     }while(c.moveToNext()); 
    } 

    Toast.makeText(this,resc,Toast.LENGTH_LONG).show(); 

但結果是一樣的。

+0

但在你的代碼你獲取數據的代碼呼叫。你有沒有嘗試其他列索引? – nikis

回答

3

您從光標「客戶」提供0作爲索引`getString`獲取單個數據,只能從'Client`列更新爲其他

if (c.moveToFirst()) { 
    do{ 
    line += c.getString(0); 
    line += c.getString(1); 
    line += c.getString(2); 
    line += c.getString(3); 
    }while(c.moveToNext()); 
} 
+0

謝謝。它工作:)現在我想到了它,這感覺很愚蠢^ _ ^ – Dante