我正在處理使用三列數據庫的應用程序。以下是我創建語句:列不存在錯誤
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
當我通過命令行shell到仿真器並顯示數據庫的模式,則顯示以下內容:
CREATE TABLE namesTable (_id integer primary key autoincrement, name text not null, games integer, wins integer);
所以,根據這一點,看起來'勝利'列在那裏,但我仍然收到錯誤。任何想法爲什麼這是怎麼回事?
請添加您用於創建'notesCursor'的代碼。也許你使用了錯誤的表格。 – ccheneson
我按照要求添加了代碼。 – ariets
有趣的部分是'getAllEntriesCursor()'內部的東西 - 檢查這是否是正確的數據庫,右表和右列(在拼寫錯誤的情況下) – ccheneson