0

我有这个 SQL 查询

bd.replace(TABLE,null,cv);

其中 cv 是 {_id=1,column1=x,column3=z}; // 注意没有 column2

TABLE 具有以下方案:

_id(作为主键)| 第 1 列(作为文本)| 第 2 列(作为文本)| 第 3 列(作为文本)

在我运行查询之前,我已经有了具有以下值的寄存器 _id=1 (_id=1,column1=a,column2=b,column3=c) 所以在它运行查询之后我得到了 (_id=1,column1= x,column2=null,column3=z) 为什么不将 column2 保留为 b?

¿ 有谁知道如何保持这个值与以前一样?

重要提示:我使用替换因为我需要插入一个新行以防它不存在。

提前致谢

4

1 回答 1

0

解决方案:

我知道发生了什么事。

根据sqlite docs,当您首先更新一行时,它会删除该行,因为我的column2等于null,

我也有这样的散步:

long id=bd.insert(TABLE, null,cv);
if(id==-1) {
    int idrow=(Integer) cv.get("_id");
    cv.remove("_id");
    bd.update(TABLE,cv,"_id=?",new String[]{String.valueOf(idrow)});
}

如果有人知道更好的东西,请重播这篇文章。

谢谢

于 2012-12-27T15:10:55.030 回答