2016-07-12 23 views
0

どういうわけか、クエリの疑問符は置き換えられず、理由を理解できません。タイムスタンプ、 AndroidのSQLクエリ()は疑問符を置き換えません

chatId = chatMessage

FROM

SELECTメッセージ:
私はいつも(デバッグ中に見えた)クエリを取得しますか?タイムスタンプASC BY

ORDER以下のコードで

LIMIT 5

public ArrayList<String> queryLastMessages(String chatId, int count){ 
    SQLiteDatabase db = new DatabaseHelper(context).getReadableDatabase(); 

    String[] columns = { 
      COLUMN_NAME_CHAT_MESSAGE, 
      COLUMN_NAME_TIMESTAMP 
    }; 

    String selection = COLUMN_NAME_CHAT_ID + " = ?"; 

    String[] selectionArgs = { 
      chatId 
    }; 

    // ToDo: Ascending or Descending? 
    Cursor cursor = db.query(
      TABLE_CHAT_MESSAGE, 
      columns, 
      selection, 
      selectionArgs, 
      null, 
      null, 
      COLUMN_NAME_TIMESTAMP + " ASC", 
      String.valueOf(count)); 

    cursor.moveToFirst(); 

    ArrayList<String> arrayList = new ArrayList<>(); 
    if(cursor.getCount() != 0){ 
    while(!cursor.isAfterLast()){ 
     arrayList.add(cursor.getString(0)); 
     cursor.moveToNext(); 
    } 
    } 

    return arrayList; 
} 

私が間違って何をしたか任意のアイデア?ご協力いただきありがとうございます。

レイ

+2

*何とかクエリで質問マークが交換されていません* ???置き換えられることはありません...パラメータバインディングがどのように動作するか... – Selvin

+1

クエリは機能しますか? –

+0

@セルヴィン: あなたのヒントをありがとう。そのため、実際の問題が見つかりました:D =>パラメータchatIdが間違っていました – Ayox

答えて

0

は、この方法を試してください。

SQLiteStatement stmt = db.compileStatement(query); 
stmt.bindString(1, stringYouWantToReplaceQuestionMark); 
stmt.execute(); 
+0

別の理由で動作する理由はありません – njzk2

関連する問題