2017-09-24 9 views
0

私はこの問題をインターネットで検索しましたが、何の反応も得られませんでした。 私はそれが選択からだと信じていますが、何が間違っているのか分かりません。sqlite.SQLiteException:そのような列がありません:data1(Sqlite code 1):

私はこのエラーを取得:携帯電話の連絡先を取得するために、このコードを実行した後
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); 

私は任意の助けをいただければ幸いです。

+0

select文全体をデバッグ/ロギングしてみてください。私の推測では、照会されているテーブルには存在しない列選択を行っているということです。 – ADimaano

+0

私はLIKE行を追加した後にのみこの問題を抱えています –

+0

本当にLIKE行が必要な場合はOKです。しかし、select文全体をログに記録すると本当に役に立ちます。その後、DBサーバー上でそのselectステートメントを手動で実行すると、エラーがどこにあるかがわかります。あなたの質問を編集し、selectステートメントログを投稿してください。 – ADimaano

答えて

1

あなたのエラーによると、あなたが照会しているURIのそのような列data1はありません。 selectionに含まれているContactsContract.CommonDataKinds.Phone.NUMBER列で例外が発生しているはずです。 あなたはContactsContract.Dataテーブルにthe overview from the ContactsContract

行で述べたように、このような電話番号や電子メールアドレスなどの個人データを、任意の種類を格納できることContactsContract.DataあるContactsContract異なるテーブルを照会することができます。

関連する問題