2016-11-07 54 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。感謝你如何知道更新是否通過。 –