android - sqlite.SQLiteException : no such column: data1 (Sqlite code 1): 异常

标签 android sql sqlite

我已经在互联网上搜索了这个问题,但没有得到任何有效的回应。 我相信它来自选择,但我不知道它有什么问题。

我得到这个错误:
android.database.sqlite.SQLiteException: no such column: data1 (Sqlite code 1): ,编译时:SELECT sort_key, photo_uri ...

执行此代码以检索电话联系人后:

    Uri uri = ContactsContract.Contacts.CONTENT_URI;
    String no07 = "%07";
    String no407 = "%+407";

    String selection = "((" + ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY + " NOTNULL) AND ("
            + ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1) AND ("
            + ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY + " != '' ) AND (("
            + ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE '" + no07 + "' ) OR ("
            + ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE '" + no407 + "' )))";

    Cursor phones = getActivity()
            .getContentResolver()
            .query(uri, null, selection, null, null);

如有任何帮助,我将不胜感激。

最佳答案

根据您的错误,您正在查询的 URI 中没有这样的列 data1selection 中包含的 ContactsContract.CommonDataKinds.Phone.NUMBER 列应该会导致异常。 您可能想从 ContactsContract 查询不同的表,即 ContactsContract.Data,如 the overview from the ContactsContract 所述

A row in the ContactsContract.Data table can store any kind of personal data, such as a phone number or email addresses.

关于android - sqlite.SQLiteException : no such column: data1 (Sqlite code 1): 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46395706/

相关文章:

java - Cordova运行不构建插件类

sql - 无法解决 UNION 操作中 "SQL_Latin1_General_CP1_CI_AS"和 "Latin1_General_CI_AS"之间的排序规则冲突

sql - 如何对具有重置条件的列进行 SUM()?

function - 如何更改sqlite get函数?

c++ - 无法在 SQLite 的命令行上访问表

java - 更改抽屉导航的默认选定项目(Android - Java)

java - 应用程序被终止时,AlertDialog 不会出现在屏幕上

mysql - CASE 语句以及如何使用其中的值

iOS、Swift、SqLite、选择并显示所有行

机器人,checkedTextView : checkmarks of different width