我有一个使用 SQLite 数据库的 android 应用程序。在一个活动中,用户可以添加一个字符串和两个值。这应该通过以下代码添加。
public void insertValue(SQLiteDatabase db, String type, String value1, String value2){
String insertSQL = "INSERT INTO history (_id , calcType , value1 , value2) VALUES (" + null +", "+ type +", "+ value1 +", "+ value2 + ")";
try {
db.execSQL(insertSQL);
}catch(SQLException e){
Log.d("INSERT FAILURE", e.toString());
}
}
如果我手动输入“calcType”的值,则会发生以下错误。如果输入“null”,则不会发生错误,整个 sql 语句都可以正常工作。
09-18 13:42:51.124: I/Database(1244): sqlite returned: error code = 1, msg = no such column: radius
09-18 13:42:51.124: E/Database(1244): Failure 1 (no such column: radius) on 0x2a2900 when preparing 'INSERT INTO history (_id , calcType , value1 , value2) VALUES (null, radius, 34, 77)'.
09-18 13:42:51.124: D/INSERT INTO FAILURE(1244):android.database.sqlite.SQLiteException: no such column: radius: INSERT INTO history (_id , calcType , value1 , value2) VALUES (null, radius, 34, 77)
使用此字符串创建数据库:
private static final String CREATE_TABLE_HISTORY =
"CREATE TABLE history(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"calcType TEXT, " +
"value1 TEXT NOT NULL, " +
"value2 TEXT NOT NULL" + ")";
我不知道插入 SQL 语句或上面列出的表有什么问题。