db.insert()
テーブルに新しい行を挿入するために直接指定されたSQLiteDatabaseのAPIメソッドを使用することをお勧めします。このソリューションはよりクリーンです。
public void insertIntoDatabase(String field_one, String field_two){
ContentValues data = new ContentValues();
data.put("COL_USERNAME", field_one);
data.put("COL_PASSWORD", field_two);
if (db == null) {
// make sure that your db is properly initialised
}
db.insert("tablename", "nullColumnHack", data);
}
nullColumnHackの説明:
指定した値が空の場合、列名は不明であり、空の行を挿入することはできません。nullに設定されていない場合、nullColumnHackパラメーターは、値が空の場合にNULLを明示的に挿入するためのnull許容列名の名前を提供します。
これは、空のContentValuesを渡した場合Android SQLite
に割り当てられる1つの列を指定する必要があることを意味します。NULL
あなたがあなたのアプローチを使いたいのなら、私はあなたにプレースホルダーの使用をお勧めします。
String sql = "INSERT INTO UserTable.NAME (COL_USERNAME, COL_PASSWORD) " +
"VALUES (?, ?)";
db.execSQL(sql, new String[] {field_one, field_two});
注:一重引用符を使用しなかったため、おそらく機能しませんでした。
VALUES ("' + field_one + '", "' + field_two + '")"
また、指定されたテーブル名が正しいことを確認してください。テーブル名と列名を保持する静的変数を作成することをお勧めします。
public static final String TABLE_NAME = "Table";
String query = "insert into " + ClassName.TABLE_NAME + " values(?, ?)"