我试图在 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/