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

大家好。

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

android.database.sqlite.SQLiteException:没有这样的列:标题:,编译时: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 = "我的组"。那是我需要的组的名称

标签: android sqlite android-contentprovider contactscontract


【解决方案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 能解决我的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 2013-10-03
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
相关资源
最近更新 更多