1

我在更新数据库中的表时遇到了一个奇怪的问题...如果我不能很好地解释,请原谅我,但我有点困惑...问题是这样的:我创建了一个带有值的表,我在我的列表视图..现在一切正常..插入和删除值没有问题..现在在服务中创建了一个循环为什么我需要在我的数据库的值和字符串之间进行比较,当这个比较为真时,我需要更改表中的值..

真正的问题是:我的db.update作品只有在不使用的情况下......从不,命令db.delete......如果使用它,则db.update不再工作......为了让它再次工作,我需要制作一个新的 AVD。

这怎么可能?我db.delete和身份证是这样的:

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");

如果您需要更多代码,请告诉我我现在添加的内容..提前谢谢

4

1 回答 1

2

您使用的 SQLite api 基于CRUD操作(您应该阅读此内容)。

您正在从数据库中删除记录,因此当您尝试更新它时没有要更新的内容。如果您想创建一条新记录,或重新创建您删除的记录,那么您将执行 INSERT 而不是 UPDATE。

编辑:

看来您正在将位置编号传递给更新和删除。我假设您也使用此值将记录放在表中?是否有可能当您从表和数据库中删除记录时,其他记录现在的位置无效,因为它们也没有更新?这只是在黑暗中拍摄,我想我不妨问一下。

于 2012-04-26T01:19:49.873 回答