android.database.sqlite.SQLiteException:没有这样的列:标题:,编译时:

Posted

技术标签:

【中文标题】android.database.sqlite.SQLiteException:没有这样的列:标题:,编译时:【英文标题】:ndroid.database.sqlite.SQLiteException: no such column: title: , while compiling: 【发布时间】:2012-06-26 19:05:59 【问题描述】:

大家好。

我的查询需要帮助。我收到警告,但我不知道出了什么问题。

SELECT _id, display_name FROM view_data_restricted data WHERE (1) AND (account_name='ricardofilipe19@gmail.com' AND title!=GrupoSocios AND mimetype ='vnd.android.cursor.item/group_membership' AND display_name like '%rui%') ORDER BY DISPLAY_NAME

这是我的代码

return getContentResolver().query(Data.CONTENT_URI,
     new String[]ContactsContract.Contacts._ID,   ContactsContract.Contacts.DISPLAY_NAME,ContactsContract.Groups.ACCOUNT_NAME + "='" + accountName + "' AND " + ContactsContract.Groups.TITLE + "!=" + nomeGrupo + " AND " + Data.MIMETYPE + "='" + GroupMembership.CONTENT_ITEM_TYPE + "' AND " + ContactsContract.Contacts.DISPLAY_NAME + " like '%" + filter + "%'" ,
 null,
 "DISPLAY_NAME");

感谢您的帮助。

【问题讨论】:

什么是 nomeGrupo 的数据类型? 这是一个字符串。私人字符串 nomeGrupo = "我的组"。那是我需要的组的名称 【参考方案1】:

如果您在 SQL 字符串中包含“nomeGrupo”,则需要引用它。

'" + nomeGrupo + "'

【讨论】:

感谢您的回复。但是我尝试这种方式并不起作用。出现同样的错误。 ContactsContract.Groups.ACCOUNT_NAME + "='" + accountName + "' AND " + ContactsContract.Groups.TITLE + " !='" + nomeGrupo + "' AND " + Data.MIMETYPE + " ='" + GroupMembership.CONTENT_ITEM_TYPE + "' AND " + ContactsContract.Contacts.DISPLAY_NAME + " like '%" + filter + "%'" , 我的猜测是,使用 ContactsContract.Data.CONTENT_URI,我无法访问 ContactsContract.Groups.TITLE 信息。我是对的?如果是,我该如何计算这个问题?【参考方案2】:

尝试在此处放置一个空格并添加一些引号(`):

ContactsContract.Groups.TITLE + " !='" + nomeGrupo + "' AND "

【讨论】:

是的,我明白了。我的猜测是,使用 ContactsContract.Data.CONTENT_URI,我无法访问 ContactsContract.Groups.TITLE 信息。我是对的? 这似乎是合理的。我已经更新了我的答案,试试 CONTENT_GROUP_URI。 不起作用。你觉得 cursorJoiner 能解决我的问题吗?

以上是关于android.database.sqlite.SQLiteException:没有这样的列:标题:,编译时:的主要内容,如果未能解决你的问题,请参考以下文章