2017-06-29 8 views
0

で句、私はアンドロイド問合せは、アンドロイド

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; 
} 

での句はしかし、カーソルが唯一の「クライアント」を返却した場合に、複数の列の値を返すために、次のコードを試してみたWHERE使用して複数の列からデータを取得できません列の値。ここでは、文字列にカーソルためのコードがあります:

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(); 

をしかし、結果は同じです:

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(); 

も、このいずれかを試してみました。

+0

ためのコードを更新、カーソル「クライアント」から単一のデータをフェッチしているが、あなたのコードの中であなたがgetString' 'にインデックスとして0を提供することでのみ、' Client'列からデータをフェッチしていますコール。他の列の索引を試しましたか? – nikis

答えて

3

あなたが他の

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