0

SQLite データベースと Android モバイル開発の使用は初めてです。編集テキスト フィールドに入力されたユーザー名がデータベースに存在するかどうかを確認しようとしています。実行してボタンをクリックすると、アプリケーションがクラッシュします。これは私のコードです。

 public boolean findUsername(String username) {
Cursor c = ourDatabase.query(true, DATABASE_TABLE_L, new String[] {
        KEY_USERID, KEY_USERNAME, KEY_PASSWORD,KEY_SECRETQ,KEY_ANSWER}, KEY_USERNAME + "="
        + username, null, null, null, null, null);
    if (c != null) {
      return true;
      }
      return false;
  }
}

ログ猫のエラーには、次のように記載されています。

no such column: bobby: , while compiling: SELECT DISTINCT userId, username, password,    secretQ, answer FROM Login WHERE username=bobby

私は何を間違っていますか?

4

3 に答える 3

3

このようにクエリを作成する必要があります

SELECT DISTINCT userId, username, password,    secretQ, answer FROM Login WHERE username='bobby'

ユーザー名に引用符を付ける必要があります。

Cursor c = ourDatabase.query(true, DATABASE_TABLE_L, new String[] {
        KEY_USERID, KEY_USERNAME, KEY_PASSWORD,KEY_SECRETQ,KEY_ANSWER}, KEY_USERNAME + "='"
        + username +"'", null, null, null, null, null);

上で試してみてください。

于 2012-06-12T05:47:57.743 に答える
2
Cursor c = ourDatabase.query(true, DATABASE_TABLE_L, new String[] {
        KEY_USERID, KEY_USERNAME, KEY_PASSWORD,KEY_SECRETQ,KEY_ANSWER}, KEY_USERNAME + "=?",
        username, null, null, null, null);
于 2012-06-12T05:48:59.630 に答える
1

これを試して。

Cursor C = ourDatabase.query(DATABASE_TABLE_L, new String[] {
        KEY_USERID}, KEY_USERNAME + "= ?" , new String[] {username}, null, null,null);
于 2012-06-12T05:53:47.950 に答える