从sqlite DB中删除后有空白行,并将下一行数据记录到空行后的下一行。如何解决这个问题?在我删除一些瘦之前所有工作正常,但删除后我有这个问题。
private static final String DB_CREATE =
"create table " + DB_TABLE + "(" +
COLUMN_ID + " integer primary key autoincrement, " +
COLUMN_NAME + " text, " +
COLUMN_TIME + " text, " +
COLUMN_RAW_TIME + " integer " +
");";
删除我使用:
//method which called delRec from DB class
public boolean onContextItemSelected(MenuItem item) {
if (item.getItemId() == CM_DELETE_ID) {
AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
.getMenuInfo();
db.delRec(acmi.id);
getSupportLoaderManager().getLoader(0).forceLoad();
}
else if (item.getItemId() == RESET_STOPWATCH){
AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
.getMenuInfo();
db.resetTime(Long.toString(acmi.id));
getSupportLoaderManager().getLoader(0).forceLoad();
}
return super.onContextItemSelected(item);
}
// delete
public void delRec(long id) {
//mDB.delete(DB_TABLE, COLUMN_ID + " = " + id, null);
mDB.execSQL("DELETE FROM mytab WHERE _id = " + id);
}
添加:
public void addRec(String txt, String txt2, long time) {
ContentValues cv = new ContentValues();
cv.put(COLUMN_TIME, txt2);
cv.put(COLUMN_NAME, txt );
cv.put(COLUMN_RAW_TIME, time );
mDB.insert(DB_TABLE, null, cv);
答案 0 :(得分:0)
autoincrement
使生成的行ID唯一。不会再生成相同的ID。
如果您希望以MAX(id)+1
生成ID且可能重用ID,请移除autoincrement
并保留primary key
。如果您想在中间重复使用任何可用的ID号,您必须先找到它。
除此之外,重新考虑你的方法。在中间缺少身份证号码应该不是问题。问题出在您显示数据的代码中,而不是数据本身。