SQLite データベースを使用する Android アプリがあります。1 つのアクティビティで、ユーザーは文字列と 2 つの値を追加できます。これは、次のコードで追加する必要があります。
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" + ")";
Insert SQL Statemant または上記の表の何が問題なのかわかりません。