2016-03-06 76 views
0

由於某種原因,我的return語句返回一個long而不是布爾值,除非這個問題得到解決,否則無法進行任何測試。我不知道爲什麼它甚至會這樣做。在我所知的範圍內嘗試了一切,因此我爲什麼在這裏。發現很長,需要布爾值(插入到SQLite [Android])

在我發佈之前查看了一些其他人的示例,他們似乎使用了與我一樣的return語句,沒有任何問題。

public boolean updateDatabase(String Name) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues args = new ContentValues(); 
    args.put(COL_1, Name); 
    return db.insert(TABLE_NAME, null, args); 
    db.close(); 
} 
+0

這個代碼就不會想運行。 – fdsa

回答

1

插入API返回插入的行的ID,或者錯誤時返回-1。而你的返回是在db.close()語句之前的,它不會被編譯。

在這裏看到:因爲`db.close`一個return語句後insert

+0

我明白了,爲什麼close()是在return語句後面。當然,我想要返回行ID,然後釋放對數據庫對象的引用? 另外,因爲我的數據庫中沒有行,不應該只返回1,在這種情況下,這是第一行?我已經定義ID是我的「CREATE_QUERY」中的自動遞增字段。 –

+0

如果您不得不問,爲什麼退貨需要在功能的最後,您需要了解基本知識。你的代碼甚至不會按原樣編譯。 – Francesc

+0

每次我在這個論壇發帖時,有人必須是一個大量自命不凡的洞穴。我真的想問爲什麼?你的第一個評論很好!這真的幫助我更多地瞭解這個問題。我只是跟進你的迴應產生的問題。 我知道return語句的作用。我問的是,如果你在獲得返回值之前尊敬存儲數據庫的對象,那麼你怎麼能期望得到一個返回值?看看這個問題的所有其他例子..他們顯示'SQLiteDatabase.close()'方法..在返回語句之後。 –