Android: ошибка в SQLiteDatabase rawQuery (выборка данных) - PullRequest
0 голосов
/ 15 января 2011

Итак, у меня есть база данных SQliteDatabase. Он имеет только один столбец, и его данные являются строками для ранее сохраненных входных данных. Я пытаюсь заполнить все данные из mDb в String [] для AutoCompleteTextView (чтобы автозаполнение основывалось на предыдущих входных данных), и вот мой код, чтобы получить всю строку.

public String[] fetchAllSearch() {
 ArrayList<String> allSearch = new ArrayList<String>();
 Cursor c = mDb.rawQuery("select * from " + DATABASE_TABLE, null);
 c.moveToFirst();
 if (c.getCount() > 0) {
  do {
   allSearch.add(c.getString(c.getColumnIndex("KEY")));
  } while (c.moveToNext());
 }
 String[] foo = (String[]) allSearch.toArray();
 if (foo == null) {
  foo = new String[] {""};
 }

 return foo;
}

моя команда CREATE_TABLE -

private static final String DATABASE_CREATE = "create table " + DATABASE_TABLE;
..

public void onCreate(SQLiteDatabase db) {

            db.execSQL(DATABASE_CREATE);
        }

Но по какой-то причине строка mDb.rawQuery (...) дает мне исключение "такая таблица не найдена", и я не могу понять почему. Есть указатели?

Ответы [ 2 ]

1 голос
/ 15 января 2011

Какое значение DATABASE_TABLE?

Если это просто имя таблицы, то оператор create является неполным, поскольку не указывает столбцы.

Если этоимя столбца плюс определения, тогда выбор не будет работать.

Итак, вам нужно использовать разный текст в двух местах, которые вы использовали DATABASE_TABLE

Попробуйте использовать программу командной строки SQLite3попробуй свой SQL.Например,

sqlite> create table foo;
Error: near ";": syntax error
sqlite> create table foo(col);
sqlite> select * from foo(col);
Error: near "(": syntax error
sqlite> 
0 голосов
/ 23 ноября 2011

Использовать SELECT column_name FROM table_name.

Избегать использования в запросе *, так как это может вызвать проблему, связанную с первичным ключом.

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