код синтаксической ошибки около транзакции 1 при компиляции вставки в - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь поместить свою транзакцию в таблицу, используя SQLite, но каким-то образом я не могу заставить ее работать, это всегда ошибка, я уже проверяю синтаксис, но idk, который вызывает ошибку. Вот исходный код.

public class Database extends SQLiteAssetHelper {
    private static final String DB_NAME = "ifa.db";
    private static final int DB_VER=1;
    public Database(Context context){
        super(context, DB_NAME,null,DB_VER);
    }

    public void addToTransaction(Transaction transaction)
    {
        SQLiteDatabase db = getReadableDatabase();
        String query = String.format("INSERT INTO TRANSACTION(date,companyname,itemname,itemtotal,itemprice,grandtotal,itemleft) VALUES('%s','%s','%s','%s','%s','%s','%s');",
                transaction.getDate(),
                transaction.getCompanyname(),
                transaction.getItemname(),
                transaction.getItemtotal(),
                transaction.getItemprice(),
                transaction.getGrandtotal(),
                transaction.getItemleft());
        db.execSQL(query);
    }
}

и вот отчет, который я получил

Process: com.example.crz.ifa, PID: 11831
    android.database.sqlite.SQLiteException: near "TRANSACTION": syntax error (code 1): , while compiling: INSERT INTO TRANSACTION(date,companyname,itemname,itemtotal,itemprice,grandtotal,itemleft) VALUES('14-11-2018','test','pen','2','5000','10000','50');

1 Ответ

0 голосов
/ 30 октября 2018

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

Если предположить, что таблица с именем TRANSACTION была создана (ее нужно было заключить / заключить в кавычки при ее определении), тогда вы можете использовать одно из следующих: -

INSERT INTO `TRANSACTION`(date,co......
INSERT INTO 'TRANSACTION'(date,co......
INSERT INTO [TRANSACTION](date,co......
INSERT INTO "TRANSACTION"(date,co......

SQL в понимании SQLite - ключевые слова SQLite

Альтернативно, сама таблица может быть переименована (это, вероятно, будет лучшим решением).

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