Я пытаюсь открыть базу данных SQLite в Android, база данных прекрасно работает в браузере sqlite, но Android не читает, что данная таблица существует.Ниже приведен код, с которым я возиться.
public String setColorName() {
String colorName = null;
try {
db = this.openOrCreateDatabase("colors.db",MODE_WORLD_READABLE, null);
Cursor cursor = db.rawQuery("SELECT colorName FROM Colors WHERE RGB = '000000'", null);
if (cursor != null) {
if (cursor.moveToFirst()){
do {
colorName = cursor.getString(cursor.getColumnIndex("colorName"));
}while (cursor.moveToNext());
}
} else {
colorName = "woops";
}
} catch (NumberFormatException e) {}
return colorName ;
}
Я нашел много статей по этой проблеме на нескольких форумах (включая stackoverflow), но проблема, с которой я столкнулся, не была решена с их помощью.решения.Я пытаюсь извлечь RGB и имя цвета из кода (приведенный выше запрос - всего лишь тест, ведущий к этому), чтобы я мог оценить ближайший RGB, используя евклидову формулу расстояния для каждой части.Для того, чтобы сделать это, мне нужно, по крайней мере, получить данные из таблицы: P.
LogCat:
I/Database(12748): sqlite returned: error code = 1, msg = no such table: Colors
D/AndroidRuntime(12748): Shutting down VM
W/dalvikvm(12748): threadid=1: thread exiting with uncaught exception (group=0x4
0015560)
E/AndroidRuntime(12748): FATAL EXCEPTION: main
E/AndroidRuntime(12748): android.database.sqlite.SQLiteException: no such table:
Colors: , while compiling: SELECT colorName FROM Colors WHERE RGB = '000000'
E/AndroidRuntime(12748): at android.database.sqlite.SQLiteCompiledSql.nat
ive_compile(Native Method)
E/AndroidRuntime(12748): at android.database.sqlite.SQLiteCompiledSql.com
pile(SQLiteCompiledSql.java:92)
E/AndroidRuntime(12748): at android.database.sqlite.SQLiteCompiledSql.<in
it>(SQLiteCompiledSql.java:65)
E/AndroidRuntime(12748): at android.database.sqlite.SQLiteProgram.<init>(
SQLiteProgram.java:83)
E/AndroidRuntime(12748): at android.database.sqlite.SQLiteQuery.<init>(SQ
LiteQuery.java:49)
E/AndroidRuntime(12748): at android.database.sqlite.SQLiteDirectCursorDri
ver.query(SQLiteDirectCursorDriver.java:42)
E/AndroidRuntime(12748): at android.database.sqlite.SQLiteDatabase.rawQue
ryWithFactory(SQLiteDatabase.java:1356)
E/AndroidRuntime(12748): at android.database.sqlite.SQLiteDatabase.rawQue
ry(SQLiteDatabase.java:1324)
И, наконец, вот изображение браузера SQLite, показывающее, что запрос работает в этой базе данных Запрос SQLiteBrowser
Если картинка не выдала, я храню colors.db в активах.
Извините за длину, я стараюсь быть максимально тщательным и всерьез ценю любого, кто мне помогает.
Хорошо, похоже, я справился с проблемой.Мне нужно было скопировать БД из активов, а затем открыть его оттуда.Я закончил тем, что сделал помощника базы данных, используя информацию, которую нашел в ссылке ниже, и я получил базу данных, чтобы перестать возвращать эту ошибку, хотя теперь мне нужно завершить остальную часть приложения.Огромное спасибо за отличный совет всем!http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/