пытается вызвать user_id из sqlite - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь вызвать user_id из базы данных sqlite, но получаю эту ошибку

android.database.sqlite.SQLiteException: неизвестная ошибка (код 0 SQLITE_OK): запросы могут выполняться только с помощью запроса SQLiteDatabase или методов rawQuery. в android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount (собственный метод)

public Database user_id(){
    SQLiteDatabase db = getReadableDatabase();
    String query = String.format("SELECT user_id FROM OrderDetails ;");
    db.execSQL(query);
    Cursor c = db.rawQuery(query, null);
    if (c != null && c.moveToFirst()) {

        c.moveToFirst();
    }
        return user_id();
}

Пожалуйста, не рекомендуйте другое решение, потому что я застрял с этим более чем на один день, и я попробовал почти все решения, представленные в stackoverflow и онлайн

1 Ответ

0 голосов
/ 21 мая 2019

От: https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#execSQL(java.lang.String)

public void execSQL (String sql)Выполните один оператор SQL, который НЕ является SELECT, или любой другой оператор SQL, который возвращает данные.

Удалите эту строку:

db.execSQL(query);

Метод execSQL() не используется для выполнения запросов, которые выбирают строки, например операторы SELECT.Вы можете использовать его с INSERT, UPDATE, CREATE и т. Д.Кроме того, я думаю, что вы хотите вернуть идентификаторы пользователя как Cursor, верно?Так почему:

public Database user_id()

возвращает объект базы данных (что бы это ни было).Измените метод на этот:

public Cursor user_id(){
    SQLiteDatabase db = getReadableDatabase();
    String query = "SELECT user_id FROM OrderDetails";
    Cursor c = db.rawQuery(query, null);
    return c;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...