0

私はAndroidアプリを開発しています。ユーザー入力を表示しようとしていますが、表示しようとすると上記のエラーメッセージが表示されます。何が間違っているのかわかりません。これが私が使用するコードです。ありがとうございました。

try {

        Cursor cursor = dictionary.getDictionaryDatabase().rawQuery("SELECT catgram FROM adresse_definition WHERE definition='"+word[0].toLowerCase().trim()+"'", null);

        //Cursor cursor = dictionary.getDictionaryDatabase().rawQuery("SELECT index_nom_adresse" + word[0].toLowerCase().trim() + " FROM adresse_definition JOIN   definition ON adresse_definition.definition = definition.data_id ", null);
        //Cursor cursor = dictionary.getDictionaryDatabase().query("adresse_definition", null, "index_nom_adresse= '" + word[0].toLowerCase().trim() + "' or definition= '" + word[0].toUpperCase().trim() + "' ", null, null, null, null);
        cursor.moveToFirst();
        if (cursor.getCount() != 0) {

            if (word[1] == null || word[1].equals("English")) {
                translatedWord = cursor.getString(2);
            } else {
                translatedWord = cursor.getString(1);
            }
        } else {
            translatedWord = "The word is not in database";
        }
        cursor.close();
    } catch (SQLiteException sqle) {
        translatedWord = "The word is not in database";
    }

    dictionary.close();
4

2 に答える 2

0

コードはカーソル内の1つの列のみを読み取っており、列インデックスはゼロベースです。

"SELECT catgram FROM adresse_definition WHERE definition=word[0].toLowerCase().trim()";
于 2013-03-26T19:57:46.630 に答える
0

カーソルから取得するrawqueryのすべての列を選択しているかどうかを確認してください。現在、クエリで1つの列のみを選択し、cursor.getStringで2つの列を取得しています。クエリを次のように変更するだけです。

Select * from table_name Where ...
于 2013-03-26T19:58:40.250 に答える