以下selectQuery有什么问题吗?

时间:2012-10-27 10:19:05

标签: android sqlite

int getIdForSong(Song song){

    String selectQuery = "SELECT id FROM " + TABLE_SONG + " WHERE " + SONG_TITLE + "=" + song.getSongTitle() + " AND " + ARTIST_NAME + "=" + song.getArtistName();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    int id = Integer.parseInt(cursor.getString(0));
    return id;
}

我在“=”附近得到和异常。任何人?

3 个答案:

答案 0 :(得分:1)

将selectQuery Value更改为:

"SELECT id FROM " + TABLE_SONG + " WHERE " + SONG_TITLE + " = '" + song.getSongTitle() + "' AND  '" + ARTIST_NAME + "' = '" + song.getArtistName() + "'";

答案 1 :(得分:0)

试试这个

int getIdForSong(Song song){

String selectQuery = "SELECT id FROM " + TABLE_SONG + " WHERE " + SONG_TITLE + "= ' " + song.getSongTitle() + "' AND " + ARTIST_NAME + "= ' " + song.getArtistName()+" ' ";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
int id = Integer.parseInt(cursor.getString(0));
return id;
}

答案 2 :(得分:0)

对于CursorOutOfBoundException,

Cursor cursor = db.rawQuery(selectQuery,null)之后; ,

if(null!= cursor&& cursor.moveToFirst()){

  int id = Integer.parseInt(cursor.getString(0));
  return id;

}