I have used sqlite database using ormlite.I have declared primary key in database as follows:In database i fetch the values and display in listview. when i delete some entry.in list view..primary key goes on increasing values.
@DatabaseField(generatedId = true,columnName = "teacher_id")
int teacherid;
try {
Toast.makeText(DetailListView.this, "Delete entry", Toast.LENGTH_LONG).show();
DeleteBuilder<TeacherDetails, Integer> deleteBuilder=teacherDao.deleteBuilder();
deleteBuilder.where().eq("teacher_address", set.teacheraddress);
deleteBuilder.delete();
stud_list = teacherDao.queryForAll();
//adapter = new UsersAdapter(DetailListView.this, stud_list);
// list.setAdapter(adapter);
list.invalidate();
teacherDao.executeRaw("delete from sqlite_sequence where name='teacher_details';");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//code for creating db.
@Override
public void onCreate (SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource) {
try {
TableUtils.createTable(connectionSource, TeacherDetails.class);
TableUtils.createTable(connectionSource, StudentDetails.class);
} catch (SQLException e) {
Log.e(DatabaseHelper.class.getName(), "Unable to create datbases", e);
}
}
@Override
public void onUpgrade(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource, int oldVer, int newVer) {
try {
TableUtils.dropTable(connectionSource, TeacherDetails.class, true);
TableUtils.dropTable(connectionSource, StudentDetails.class, true);
onCreate(sqliteDatabase, connectionSource);
} catch (SQLException e) {
Log.e(DatabaseHelper.class.getName(), "Unable to upgrade database from version " + oldVer + " to new "
+ newVer, e);
}
}
For example before delete 1)primary key :1 2)primary key:2(if i delete this values) 3)primary key:3
After delete 1)primary key:1 2)primary key:3(not start with primary key value 2) 3)primary key 4
This is my requirement
Aucun commentaire:
Enregistrer un commentaire