Я получаю это странное исключение, когда я запускаю свое приложение и на эмуляторе и на подключенном устройстве USB. я вижу таблицу в оболочке, но когда я пытаюсь вставить запись от куртки Действия, я получаю это исключение:
android.database.sqlite. SQLiteException: аудио таблицы не имеют никакого столбца, названного загруженным
Я главным образом работаю на эмуляторе с Android 1.5. Преобладающая часть моего кода связана с этим учебным руководством - http://www.devx.com/wireless/Article/40842/1954.
Это - создать оператор, который я использую:
private static final String DATABASE_CREATE =
"create table audios ( _id integer primary key autoincrement, "
+ "user_name text not null, title text not null, file_path text not null, download integer not null, "
+ "created_at integer not null, downloaded_at integer not null );";
Это - ввести код, который я использую:
//--- insert a title into the database ---
public long insertTitle(String user_name, String title, String file_path, Integer downloaded, long created_at, String downloaded_at ) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_USER_NAME, user_name);
initialValues.put(KEY_TITLE, title);
initialValues.put(KEY_FILE, file_path);
initialValues.put(KEY_DOWNLOADED, downloaded);
initialValues.put(KEY_CREATED_AT, created_at);
initialValues.put(KEY_DOWNLOADED_AT, downloaded_at);
return db.insert(DATABASE_TABLE, null, initialValues);
}
Рискну предположить, что в вашем коде есть следующее:
public static final String KEY_DOWNLOADED = "downloaded";
Причина сообщения об ошибке в том, что ...
таблица аудио не имеет столбца с именем загружено
Действительно. Это не так, как говорится в сообщении об ошибке.
Если вы перечитаете свой SQL для создания таблиц, вы заметите, что имя столбца на самом деле download
, а не download
ed .
Итак, исправьте свой код, чтобы использовать правильное имя столбца, и вы должны быть настроены. Обратите внимание, что исправление кода может означать либо:
загружено
, а не просто загружено
.Лично я бы выбрал этот, если только у вас нет большого количества другого кода, уже использующего загрузить
, поскольку загрузка
, на мой взгляд, является либо загрузкой
, либо для загрузки
, а не был загружен
, но это действительно зависит от его фактического значения