0

after press favorite button, give me this error

logcat

E/SQLiteLog: (1299) abort at 28 in [INSERT INTO StudioMusik(fasilitas,telepon,longitude,gambar,nama,komentar,latitude,informasi,_id,jamlite,alamat,harga) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)]: NOT NULL constraint failed: StudioMusik.
09-03 18:24:36.901 29861-29861/com.skripsi.axioo.percobaan5 E/SQLiteDatabase: Error inserting fasilitas= telepon=(0271) 852590 longitude=110.848583 gambar=8.jpg nama=SMA 8 N SURAKARTA komentar= latitude=-7.546393 informasi= _id=8 jamlite= alamat=Jl. Sumbing VI No.49, Mojosongo, Jebres, Solo harga=
    android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: StudioMusik.ratingalat (code 1299)
        at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)

the problem error > NOT NULL constraint failed: StudioMusik.ratingalat (code 1299)

in my code that code never exist, try it rebuilding or clean project the result is same, the bug always on StudioMusik.ratingalat,try search that code, but iam sure that code has been deleted, using search all content and doesnt find that code

source code

private SQLiteDatabase database;

private DBHelper dbHelper;

private String[] allColumns = { DBHelper.COLUMN_ID, DBHelper.COLUMN_NAME,
        DBHelper.COLUMN_ALAMAT, DBHelper.COLUMN_HARGA, DBHelper.COLUMN_GAMBAR,
        DBHelper.COLUMN_JAMLITE,
        DBHelper.COLUMN_CALLLITE,
        DBHelper.COLUMN_INFORMASI,
        DBHelper.COLUMN_FASILITAS,
        DBHelper.COLUMN_KOMENTAR,
        DBHelper.COLUMN_LATITUDE,
        DBHelper.COLUMN_LONGITUDE
};

public DBDataSource(Context context)
{
    dbHelper = new DBHelper(context);
}

public void open() throws SQLException {
    database = dbHelper.getWritableDatabase();
}

public void close() {
    dbHelper.close();
}

// Insert data
public boolean insertStudioMusik(String id, String nama, String alamat, String harga, String gambar,
                                 String jam,
                                 String telepon,
                                 String informasi,
                                 String fasilitas,
                                 String komentar,
                                 Double latitude,
                                 Double longitude) {

    ContentValues values = new ContentValues();
    values.put(DBHelper.COLUMN_ID, id);
    values.put(DBHelper.COLUMN_NAME, nama);
    values.put(DBHelper.COLUMN_ALAMAT, alamat);
    values.put(DBHelper.COLUMN_HARGA, harga);
    values.put(DBHelper.COLUMN_GAMBAR, gambar);
    values.put(DBHelper.COLUMN_JAMLITE, jam);
    values.put(DBHelper.COLUMN_CALLLITE, telepon);
    values.put(DBHelper.COLUMN_INFORMASI, informasi);
    values.put(DBHelper.COLUMN_FASILITAS, fasilitas);
    values.put(DBHelper.COLUMN_KOMENTAR, komentar);
    values.put(DBHelper.COLUMN_LATITUDE, latitude);
    values.put(DBHelper.COLUMN_LONGITUDE, longitude);

    long insertId = database.insert(DBHelper.TABLE_NAME,null,
            values);

    if (insertId == -1) return false;
    else return true;
}

//set data
private StudioMusik cursorToStudioMusik(Cursor cursor)
{
    StudioMusik studiomusik = new StudioMusik();
    // debug LOGCAT
    studiomusik.setId(cursor.getInt(0));
    studiomusik.setNama(cursor.getString(1));
    studiomusik.setAlamat(cursor.getString(2));
    studiomusik.setHarga(cursor.getString(3));
    studiomusik.setGambar(cursor.getString(4));
    studiomusik.setJam(cursor.getString(5));
    studiomusik.setTelepon(cursor.getString(6));
    studiomusik.setInformasi(cursor.getString(7));
    studiomusik.setFasilitas(cursor.getString(8));
    studiomusik.setKomentar(cursor.getString(9));
    studiomusik.setLatitude(cursor.getString(10));
    studiomusik.setLongitude(cursor.getString(11));

    return studiomusik;
}

//mengambil semua data StudioMusik
public ArrayList<StudioMusik> getStudioMusik() {
    ArrayList<StudioMusik> daftarStudioMusik = new ArrayList<StudioMusik>();

    Cursor cursor = database.query(DBHelper.TABLE_NAME,
            allColumns, null, null, null, null, null, null);

    // pindah ke data paling pertama
    cursor.moveToFirst();
    // jika masih ada data, masukkan data barang ke
    // daftar barang
    while (!cursor.isAfterLast()) {
        StudioMusik studioMusik = cursorToStudioMusik(cursor);
        daftarStudioMusik.add(studioMusik);
        cursor.moveToNext();
    }
    cursor.close();
    return daftarStudioMusik;
}


//ambil satu barang sesuai id
public boolean isFavorite(Integer id)
{
    StudioMusik studiomusik = new StudioMusik();
    //select query
    Cursor cursor = database.query(DBHelper.TABLE_NAME, allColumns, "_id ="+id,null, null, null, null, null);
    if (cursor.getCount()>0) return true;
    else return false;
}

//update studio yang diedit
public void updateStudioMusik(StudioMusik b)
{
    //ambil id barang
    String strFilter = "_id=" + b.getId();
    //memasukkan ke content values
    ContentValues args = new ContentValues();
    //masukkan data sesuai dengan kolom pada database
    args.put(DBHelper.COLUMN_NAME, b.getNama());
    args.put(DBHelper.COLUMN_ALAMAT, b.getAlamat());
    args.put(DBHelper.COLUMN_HARGA, b.getHarga());
    args.put(DBHelper.COLUMN_GAMBAR, b.getGambar());
    args.put(DBHelper.COLUMN_JAMLITE, b.getJam());
    args.put(DBHelper.COLUMN_CALLLITE, b.getTelepon());
    args.put(DBHelper.COLUMN_INFORMASI, b.getInformasi());
    args.put(DBHelper.COLUMN_FASILITAS, b.getFasilitas());
    args.put(DBHelper.COLUMN_KOMENTAR, b.getKomentar());
    args.put(DBHelper.COLUMN_LATITUDE, b.getLatitude());
    args.put(DBHelper.COLUMN_LONGITUDE, b.getLongitude());

    //update query
    database.update(DBHelper.TABLE_NAME, args, strFilter, null);
}

// delete studio sesuai ID
public void deleteStudioMusik(Integer id)
{
    String strFilter = "_id=" + id;
    database.delete(DBHelper.TABLE_NAME, strFilter, null);
}

anyone can tell the real problem except from logcat, thank you

sweetpoem
  • 33
  • 1
  • 6

1 Answers1

0

Well, The real problem is your database state is still same as old code which have been deleted.

So you need to upgrade your database to alter the table structure.

You can refer to the link upgrade database . If you are still having doubts post your database code to help you upgrade your database.

Cheers!

iamabhaykmr
  • 1,803
  • 3
  • 24
  • 49