首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询MediaStore - SQLiteException

查询MediaStore - SQLiteException
EN

Stack Overflow用户
提问于 2012-09-19 21:20:29
回答 1查看 389关注 0票数 0

我在mediastore上执行了一个查询,试图返回特定atist的专辑数量。

该查询如下所示:

代码语言:javascript
复制
    public String doQuery(String artistName) {

        String[] proj = new String[] { MediaStore.Audio.Artists._ID,
                MediaStore.Audio.Artists.NUMBER_OF_ALBUMS,
                MediaStore.Audio.Artists.ARTIST };

        Uri baseUri = MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI;

        selection = MediaStore.Audio.Artists.ARTIST + " = " + artistName;
        Log.i(TAG, "Selection artistName = " + artistName);

        Cursor mCursor = getContentResolver().query(baseUri, proj, selection,
                null, null);

        mCursor.moveToFirst();

        return

        mCursor.getString(mCursor
                .getColumnIndex(MediaStore.Audio.Artists.NUMBER_OF_ALBUMS));

    }

传入artistName,并且所选内容应将光标缩小到该艺术家。我得到了以下异常:

代码语言:javascript
复制
09-19 23:13:14.855: E/AndroidRuntime(17911): android.database.sqlite.SQLiteException: near "Stone": syntax error (code 1): , while compiling: SELECT _id, number_of_albums, artist FROM artist_info WHERE (artist = Nine Inch Nails)

有人能告诉我我哪里做错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-19 21:29:02

执行以下操作:

代码语言:javascript
复制
selection = MediaStore.Audio.Artists.ARTIST + " =? ";
String[] selectionArgs = new String[]{artistName};
Cursor mCursor = getContentResolver().query(baseUri, proj, selection,
                selectionArgs, null);

这样,即使artistName包含单引号,它也可以执行而不会出错。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12495624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档