我已经在互联网上搜索了此问题,但无法得到任何有效的答复。
我相信这是从选择中选出的,但我不知道这有什么问题。
我收到此错误:
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中没有这样的列data1
。 ContactsContract.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/