Как запросить базу данных SQLite в Android? - PullRequest
2 голосов
/ 02 июня 2010

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

          // Create a new row of values to insert.
          ContentValues newValues = new ContentValues();
          // Assign values for each row.
          newValues.put("value", "kunjan");
          // Insert the row into your table
          myDatabase.insert(DATABASE_TABLE, null, newValues);

          String[] result_columns = new String[] { "value" };

          // I GET AN EXCEPTION HERE
          Cursor allRows = myDatabase.query(true, DATABASE_TABLE, result_columns, null, null,
              null, null, null, null);

          if (allRows.moveToFirst()) {
            String value = allRows.getString(0);
            TextView foo = (TextView) findViewById(R.id.TextView01);
            foo.setText(value);
          }

          allRows.close();
          myDatabase.close();

Я получаю это исключение

no such column: value: , while compiling: SELECT DISTINCT value FROM mainTable

Ответы [ 2 ]

2 голосов
/ 02 июня 2010

Я думаю, вы создаете таблицу только с одним столбцом (значением) и пытаетесь прочитать столбец-1 вместо столбца-0 из курсора. Если это по-прежнему не помогает, пожалуйста, добавьте блок try-catch и запишите логи

String value = allRows.getString(0);
0 голосов
/ 03 июня 2010

Некоторые проблемы с оригинальным постом

  • Создание таблицы, которая уже была создана. Я написал «если не существует» в инструкции «создать таблицу».
  • Не правильно обрабатывает исключения. Я получил много исключений при создании таблицы, запросе ее и т. Д. Все эти операции я собрал с помощью try-catch
  • Использование жестко закодированных значений для имен столбцов - это затрудняло проверку того, что я запрашивал созданный мной столбец.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...