2016-11-07 81 views
0

我确定有很多类似的问题,但我的上下文有点不同。如何更新Sqlite中的空列(Android)

所以我正在一个Android应用程序,我插入数据到表中。假设表名是具有文本类型的列firstname和lastname的用户。

我运行一个插入函数来向表中插入一行,但只有firstname的信息。所以名字被插入并且姓氏是空的。现在问题来了。

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

我更新的代码看起来像

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

结果通常是0 Contentvalue包含姓和我能保证它不是空的。

我不知道在第一次插入时,如果我这样做,必须将最后一个值设置为null或空,而不让db处理它。任何建议表示赞赏,我想知道为什么它不起作用。谢谢

+0

工作时你的表有列'_id'?你调试/记录值'someValue'?这是对的吗?你确定该行实际上被插入了吗?否则你将更新一个不存在的行 – Yazan

回答

0

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

制作接受这是否会工作....感谢得到它与

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

在插入过程中,没有必要填写所有列。如果你想更新一个值,那么你可以参考我的方法。创建此方法后,只有您必须通过dbhelper类的对象调用此方法。提前

+0

但是你看,这在技术上是我在做什么没有结果 –

+0

你正在更新表中的列值,所以你如何存储result.if你想看到更新结果然后再次您必须编写查询如** SELECT * FROM TABLE_NAME **,然后您会看到更新的结果。 –

+0

int结果如果为true,则返回1,否则返回0。感谢你如何知道更新是否通过。 –