有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

所以我正在开发一个安卓应用程序,并将数据插入一个表中。假设表名为user,其中firstname和lastname列的类型为text

我运行了一个insert函数,在表中插入一行,但只包含firstname的信息。所以firstname被插入,lastname为空。现在问题来了

当我尝试更新列lastname时,它不起作用。我不知道它是空的还是空的

我的更新代码看起来像

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

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

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


共 (2) 个答案

  1. # 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);
    }
    

    如果这样做有效,请接受。。。。提前谢谢

  2. # 2 楼答案

    找到了工作

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