当前位置: 代码迷 >> Android >> 关于SQlite的有关问题~ 新手提问
  详细解决方案

关于SQlite的有关问题~ 新手提问

热度:80   发布时间:2016-05-01 14:49:47.0
关于SQlite的问题~ 新手提问
我在数据库里建了一个名字叫user的表,然后里面有个参数是userid 我是想记录user的数量,也就是看看我插入了多少条用户信息
@Override
public void onCreate(SQLiteDatabase db) {
tableCreate = new StringBuffer();
tableCreate.append("create table ")
.append(DB_TABLENAME)
.append(" (")
.append("userid integer primary key autoincrement,")
.append("name text,")
.append("mobilephone text,")
.append("imageadress text")
.append(")");
System.out.println(tableCreate.toString());
db.execSQL(tableCreate.toString());
}

然后里面有一个操作 删除所有用户

/**
* 删除所有联系人
*/
public void deleteAll() {
dbInstance.delete(DB_TABLENAME, null, null);
}


我现在想在删除所有联系人的操作后同时把用户id置为0,代表没用户了,该怎么写代码呢?


还有,/**
* 删除一个联系人
*/
public void delete(int userId) {
dbInstance.delete(DB_TABLENAME, "userid=?", new String[]{String.valueOf(userId)});
}


如果只删除一个联系人,我想同时把用户id减小一个,该怎么写代码呢?


现在的情况是,userid integer primary key autoincrement 一直是增加的,只要我插入一次用户,它就自增一下,就算我删除了用户,它也不会减小……

求大家给我看看~不胜感激~




------解决方案--------------------
这个方法好实现,integer primary key autoincrement 这句话会在你的sqlite中,添加一个表,用于管理id的自动增加,你查找下这个表,表名我忘了名字了,这个表有俩列,一个叫name列,保存你自动增加的表名,另一个列,保存的是你当前的id值,你自己看下,在删除之后,你可以让那个表中,保存id的值减一,就可以了,希望你明白
------解决方案--------------------
你应该是根据你数据库的记录数来确定有多少条数据,而不是根据ID 因为你在建立表的时候给定的ID是自动增加的,不会随你删除某条记录而ID自减得,应该有个方法能获取数据库的总记录数。你自己好好看下吧!
  相关解决方案