2016-01-04 3 views
-1

Я пробовал следующий код, но приложение падает, когда я нажимаю, чтобы посмотреть, что хранится в базе данных.Приложение с четырьмя столбцами

DATABASE_TABLE = "EntriesTable" 

String[] columns = new String[] { KEY_ROWID, KEY_STUDENT, KEY_AGE, 
      KEY_NUMBER, KEY_CLASS }; 

    Cursor c = ourDatabase.rawQuery("select " + columns + " from " + DATABASE_TABLE , null); 


    String result = ""; 

      int IROW = c.getColumnIndex(KEY_ROWID); 
     int ISTUDENT = c.getColumnIndex(KEY_STUDENT); 
    int IAGE = c.getColumnIndex(KEY_AGE); 
    int INUMBER = c.getColumnIndex(KEY_ID_NUMBER); 
    int ICLASS = c.getColumnIndex(KEY_CLASS); 

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { 


result = result + c.getString(IROW) + " " + c.getString(ISTUDENT) + " " + " " + c.getString(IAGE) + " " + " " + c.getString(INUMBER) + " " + " " + c.getString(ICLASS) 
        + "\n"; 
    } 

    return result; 

LogCat:

E/AndroidRuntime(336): 
Caused by: 
android.database.sqlite.SQLiteException: unrecognized token: "[Ljava.lang.String;@4053eb90 from EntriesTable": , while compiling: select [Ljava.lang.String;@4053eb90 from EntriesTable 
01-04 09:59:06.396: E/AndroidRuntime(336): 
at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 

ответ

2

Вы передаете массив строк вместо строки.

Изменить это:

Cursor c = ourDatabase.rawQuery("select " + columns + " from " + DATABASE_TABLE , null); 

с этим:

Cursor c = ourDatabase.rawQuery("select " + StringUtils.join(columns, ",") + " from " + DATABASE_TABLE , null); 
+0

я только попробовал, но я получаю StringUtils не может быть решена. –

+0

Вы должны импортировать его: 'import org.apache.commons.lang3.StringUtils;' –

+0

Я только что загрузил apache commons..и импортировал StringUtils, ошибка была решена, но данные все еще отображаются из заголовков столбцов. –

Смежные вопросы