не удалось получить идентификатор слова из sqlite android - PullRequest
0 голосов
/ 22 сентября 2011

Я получаю слово из текстового представления и передаю в БД, чтобы получить его идентификатор. Я могу получить слово, но не могу получить идентификатор.пожалуйста, посмотрите на мой код и скажите мне, в чем заключается ошибка, и помогите мне исправить ее

public void onClick(View v) {
        // TODO Auto-generated method stub
        TextView txtView = (TextView) v.findViewById(R.id.rightanswer);
        //Log.d("word " + txtView.getText(), "word");
        String word = txtView.getText().toString().trim();
        String words[] = new String[3];
        words = word.split(":");
        String selectedword = words[1].toLowerCase().trim();
        Log.d("Word", "|" + selectedword + "|");
        getWordId(selectedword);
    }
};

private int getWordId(String word) {
    // String selection = "Word=" + word;
    int id = -1;
    String query = "Select wordId from Words WHERE Word ='"+word+"'";
    //Log.d("Query ::" + query + "::", "Query");
    Cursor c = executeQuery(query);
    Log.d("Row Count", "" + c.getCount());
    if (c.moveToFirst()) {
        do {
            id = c.getInt(c.getColumnIndex("wordId"));
            Log.d("Id is:", "" + id);
            Intent intent = new Intent(getApplicationContext(), Word.class);
            intent.putExtra("wordid", id);
            intent.putExtra("page", "QuizResult");
            startActivity(intent);
            finish();
        } while (c.moveToNext());
    }
    c.close();
    return id;
}

я получаю идентификатор строки как 0. пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 22 сентября 2011

Могу поспорить, что wordid не INTEGER PRIMARY KEY, поэтому возвращается 0. Сначала проверьте это.

Каждая строка в таблице имеет собственный идентификатор с именами rowid, oid или _rowid_. Используйте вместо этого, если вам просто нужно различать строки. Или отладка базы данных в оболочке.

adb -e shell

cd /data/data/your.app.package.name/databases

sqlite3 database

.headers on

select * from words;

Выше работает на эмуляторе и рутованных устройствах

0 голосов
/ 22 сентября 2011

Чтобы получить номер строки из базы данных, вы должны получить уникальный ключ (_id). Является ли wordId вашим уникальным ключом в базе данных? Я думал, что для Android было важно назвать столбец _id по любой причине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...