java - 数据没有被插入并且在 android sqlite 中没有抛出异常

标签 java android sqlite

我试图在 SQLite 数据库中插入一些数据,但数据没有被插入,也没有抛出任何异常。 我可能遗漏了一些明显的东西,但我无法弄清楚。 这是我插入数据的代码:

    public void addTransactionToDatabase(Transaction transactionClass) {

    String query = "INSERT INTO " + TABLE_TRANSACTION__NAME + " ( " + COLUMN_ACCOUNT_TYPE_NAME + "," + COLUMN_AMOUNT_NAME + ", " +
            COLUMN_CATEGORY_NAME + ", " + COLUMN_TIME_NAME + ", " + COLUMN_DATE_NAME + ", " + COLUMN_TIMESTAMP_NAME + ", " + COLUMN_REASON_NAME + " )" + " VALUES " + "( " +
            "\'" + transactionClass.getAccount() + "\', \'" + transactionClass.getAmount() + "\', \'" + transactionClass.getCategory() + "\', \'" +
            transactionClass.getTime() + "\', \'" + transactionClass.getDate() + "\', DATETIME(\'now\')" + ", " + "\'" + transactionClass.getReason() + "\'" + ");";
    SQLiteDatabase db = this.getWritableDatabase();
    Log.i(LOG_TAG, query);
    try {

        db.rawQuery(query, null);

    } catch (SQLException e) {
        Log.e(LOG_TAG, "Error while inserting transaction: " + e.getMessage());
    }
    db.close();
}

这是表的创建:

        db.execSQL("CREATE TABLE " + TABLE_TRANSACTION__NAME + " ( " + COLUMN_TIMESTAMP_NAME + " TEXT PRIMARY KEY, " +
            COLUMN_REASON_NAME + " TEXT, " + COLUMN_CATEGORY_NAME + " TEXT, " + COLUMN_AMOUNT_NAME + " INTEGER, " +
            COLUMN_ACCOUNT_TYPE_NAME + " TEXT, " + COLUMN_TIME_NAME + " TEXT, " + COLUMN_DATE_NAME + " TEXT, " +
            "FOREIGN KEY (" + COLUMN_ACCOUNT_TYPE_NAME + ") REFERENCES " + TABLE_ACCOUNT_NAME + "(" + COLUMN_ACCOUNT_TYPE_NAME + ") , " +
            "FOREIGN KEY ( " + COLUMN_CATEGORY_NAME + ") REFERENCES " + TABLE_CATEGORY_NAME + "(" + COLUMN_CATEGORY_NAME + ") )");

表已创建,每次检查时行数都为零。

最佳答案

它是 db.execSQL(query); 你必须调用而不是 db.rawQuery(query, null);
rawQuery 用于获取行。
您确定所有 \ 吗?

关于java - 数据没有被插入并且在 android sqlite 中没有抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51799323/

相关文章:

android - 错误 : Fail to resolve : com. android.support :appcompat-v7:23. 2.1

java - 如何检查字符串是否为日期?

java - Spring数据顺序搜索正确

android - 比较Android中的两个声音

android - 通过 theme 设置 StatusBar 颜色。

MySQL 到 Sqlite

SQLITE 按数字而非字母顺序

javascript - 在 Node js 中转义一个字符串以将其插入到 sqlite3 数据库中

Java 继承类的不兼容类型

java - 为某些记录器设置日志级别,但不为其他记录器设置日志级别