我已经在互联网上搜索了此问题,但无法得到任何有效的答复。
我相信这是从选择中选出的,但我不知道这有什么问题。

我收到此错误:
        android.database.sqlite.SQLiteException: no such column: data1 (Sqlite code 1): , while compiling: 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中没有这样的列data1ContactsContract.CommonDataKinds.Phone.NUMBER中包含的selection列应引起异常。
您可能要从ContactsContract查询另一个表,该表是the overview from the ContactsContract 中所述的ContactsContract.Data


  ContactsContract.Data表中的一行可以存储任何类型的个人数据,例如电话号码或电子邮件地址。

关于android - sqlite.SQLiteException:没有这样的列:data1(SQLite代码1):,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46395706/

10-10 09:27