如何在Sqlite(Android)中更新空列

时间:2016-11-07 12:37:20

标签: java android sql sqlite

我确定有很多类似的问题,但我的背景有点不同。

所以我正在使用Android应用程序,并且我正在将数据插入表格中。我们假设表名是user,其列名为firstname,lastname是text。

我运行一个插入函数来向表中插入一行,但只包含firstname的信息。因此插入firstname并且lastname为空。现在问题来了。

当我尝试更新列姓氏时,它不起作用。我不知道它是否为空或无效。

我的更新代码类似于

 int result = db.update(TABLE_USER, contentvalue, "_id= someValue", null); 

结果通常为0。 Contentvalue包含姓氏,我可以保证它不是空的。

我不知道在第一次插入期间,是否必须将最后一个值设置为null或为空,并且如果我这样做,则不让db处理它的工作原理。任何建议都表示赞赏,我想知道为什么它也不起作用。感谢

2 个答案:

答案 0 :(得分:1)

在插入期间,不填写所有列。如果要更新值,则可以从我的方法中获取参考。创建此方法后,只需要通过dbhelper类的对象调用此方法。

public void updateData(String id, String eventname, String strdate, String strtime, String enddate, String endtime) 
{
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COLUMN_EVENTNAME,eventname);
    contentValues.put(COLUMN_STARTDATE,strdate);
    contentValues.put(COLUMN_STARTTIME,strtime);
    contentValues.put(COLUMN_ENDDATE, enddate);
    contentValues.put(COLUMN_ENDTIME,endtime);

    db.update(TABLE_NAME, contentValues, COLUMN_ID+"="+id, null);
}

如果这样可行,请接受....提前致谢

答案 1 :(得分:0)

使用

int result = database.update(TABLE_USERS, contentValues, "firstname = ?" , new String[] {firstname});