android
  • sqlite
  • 2012-10-28 35 views 1 likes 
    1

    我有一个函数可以获取歌曲的ID。该id是主要字段和自动增量。但不知何故,每当我调用这个函数,它返回我-1结果未找到。我是如何解决问题的?代码有问题吗?

    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); 
         cursor.moveToFirst(); 
         if(cursor.moveToNext() && cursor != null){ 
          int id = Integer.parseInt(cursor.getString(0)); 
          return id; 
         } 
         else 
          return -1; 
        } 
    
    +1

    您选择的查询在'='部分之前需要空格,'''之前和之前没有空格。更好地使用更简单,更不容易出错的'query()'方法,它会为你添加''''。 –

    +0

    thnx很多... :) – Saurabh

    回答

    3

    我看到多余的空格:

    ' " + song.getArtistName()+" ' 
    

    所以,如果你的艺术家的名字是 “绿日” 变为了 “绿日”

    同理:

    "= ' " + song.getSongTitle() + "' 
    

    所以“破碎的梦想大道”变成了“布罗德大道ken Dreams“

    +0

    Thanx很多... :) – Saurabh

    0
    String selectQuery = "SELECT id FROM " + TABLE_SONG + " WHERE " + SONG_TITLE + "= '" + song.getSongTitle() + "' AND " + ARTIST_NAME + "= '" + song.getArtistName()+"' "; 
    
    相关问题