2011-07-26 6 views
0

私のAndroidプログラムでは、選択引数を指定してmanagedQueryを使用しようとしていますが、Sql例外が発生します。ここで選択を有効にしてmanageQueryを取得できません

07-26 19:30:44.364: INFO/Database(1163): 
sqlite returned: error code = 1, msg = near ".": syntax error 

私のコード例では、

String[] proj = { MediaStore.Audio.Media._ID, 
         MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.TITLE, 
         MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM_ID, 
         MediaStore.Audio.Media.IS_MUSIC }; 

    // Example without selection, works 
    String selection = null; 
    Cursor musiccursor = managedQuery(
        MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, selection, null, 
        null); 

    // Example with selection, does not work 
    selection = "MediaStore.Audio.Media._ID = 1"; 
    musiccursor = managedQuery(
       MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, selection, null, 
       null); 

おかげで、ニクラス

答えて

1

選択は次のように初期化されるべきである。

選択= MediaStore.Audio.Media._ID +」= 1 ";

MediaStore.Audio.Media._IDを引用符で囲むと、実際のカラム名_idではなく評価するために定数名がSQLiteに送信されます。

+0

ありがとうございます、今は正常に動作します。 :-) – Mackalacka

関連する問題