Столбец не существует Ошибка - PullRequest
0 голосов
/ 13 марта 2011

Я работаю над приложением, которое использует базу данных с тремя столбцами. Вот мое заявление о создании:

public static final String KEY_ID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_GAMES = "games";
public static final String KEY_WINS = "wins";
private static final String DATABASE_CREATE = "create table "
        + DATABASE_TABLE + " (" 
        + KEY_ID + " integer primary key autoincrement, " 
        + KEY_NAME  + " text not null, " 
        + KEY_GAMES + " integer, "
        + KEY_WINS  + " integer);";

Теперь я отображаю данные в базе данных в ListView, выполнив следующие действия:

Cursor notesCursor = mDbHelper.getAllEntriesCursor();
    startManagingCursor(notesCursor);
String[] from = new String[]{DbAdapter.KEY_NAME, DbAdapter.KEY_WINS, DbAdapter.KEY_GAMES};
int[] to = new int[]{R.id.names, R.id.wins, R.id.games};
SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.win_games, notesCursor, from, to);
setListAdapter(notes);

Когда я бегу, мне выдается следующая ошибка:

java.lang.IllegalArgumentException: column 'wins' does not exist

Когда я захожу в эмулятор через командную строку и отображаю схему базы данных, отображается следующее:

CREATE TABLE namesTable (_id integer primary key autoincrement, name text not null, games integer, wins integer);

Итак, в соответствии с этим, похоже, что столбец 'wins' есть, но я все еще получаю ошибку. Есть идеи, почему это происходит?

Ответы [ 2 ]

0 голосов
/ 22 января 2015

создайте свою базу данных следующим образом

private static final String DATABASE_CREATE = "create table "
    + DATABASE_TABLE + " (" 
    + KEY_ID + " integer primary key autoincrement," 
    + KEY_NAME  + " text not null," 
    + KEY_GAMES + " integer,"
    + KEY_WINS  + " integer)";

Обратите внимание на разделение пробелов между именами столбцов и обратите внимание, что точка с запятой (;) удалена.

0 голосов
/ 13 марта 2011

Код, который вы указали, выглядит нормально. Так что я подозреваю, что вы пропустили что-то до , поэтому в вашей БД нет столбца wins. Проверьте, как вы создаете свою БД.

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