2012-04-26 66 views
1

我有一个奇怪的问题,更新我的数据库中的表...原谅我,如果我不能很好地解释,但我有点困惑... The问题是这样的: 我创建了一个包含值的表,我在listview中读取了这个值..所有的东西现在都可以工作..插入和删除值的工作没有问题..现在在服务中创建了一个循环为什么我需要做一个我的数据库的值和字符串之间的比较,当这种比较是真实的,我需要更改我的表中的值..Android的db.update不工作,如果首先使用db.delete

真正的问题是这样的:我的db.update只有在不使用时才有效...从来没有,命令db.delete ...如果使用它,db.update不工作了......并且e它再次工作,我需要制作一个新的AVD。

怎么可能? 我db.delete和id是这样的:

item.getMenuInfo(); 
    id = getListAdapter().getItemId(info.position); 

public void deleteReg(SQLiteDatabase db ,long id) 
     { 
      db.delete(TabRegistry.TABLE_NAME, TabRegistry._ID + "=" + id, null); 
     } 

上的活动:

databaseHelper.deleteReg(db, id); 

我db.update是这样的:(仓位是getPositions()一个值,用光标定位位置(总是工作即使失败db.update))

public void updateReg(SQLiteDatabase db,int positions, String stat) 
    { 
     ContentValues v = new ContentValues(); 
     v.put(TabRegistry.STATUS, stat); 
     db.update(TabRegistry.TABLE_NAME, v, TabRegistry._ID + " = " + positions, null); 
    } 

的服务:

databaseHelper.updateReg(db, positions, "SUCCESS"); 

如果你需要更多的代码,告诉我,我提前

回答

2

添加now..thanks您正在使用的SQLite的API是基于关闭CRUD操作(你应该读这一点)。

您是删除 - 荷兰国际集团从数据库中的记录,因此没有什么,当你试图更新来更新。如果你想创建一个新的记录,或者重新创建一个你删除的那个,那么你将执行一个INSERT而不是一个UPDATE。

编辑:

它也出现你逝去的位置编号的更新和删除。我假设你也使用这个值将记录放在你的表中?是否有可能在从表和数据库中删除记录时,其他记录现在具有无效的位置,因为它们还没有被更新?这只是一个黑暗中的镜头,我想我可能会问。

+0

真的可以,如何更新整个表格,纠正其位置? – Tony 2012-04-26 01:30:13