2016-03-17 62 views
-3

在我的應用程序的一部分中,我從移動設備獲取日期並將其作爲字符串存儲在SQLite數據庫中。無法匹配存儲在SQLite中的字符串

當我嘗試從數據庫中選擇具有相同日期的行時,找不到任何匹配結果。

同樣在下面的代碼中,我試圖獲取特定的表格單元格,我確信它匹配當前日期。但沒有匹配。

有什麼想法嗎?

從手機獲取日期並將其作爲字符串插入。

String currentDateString = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); 
MyDB.insertRow(currentDateString); 

檢查數據庫中的日期是否等於移動日期。

if (MyDB.getRow(21).getString(1).toString()==currentDateString) 
Toast.makeText(getBaseContext(),"Match",Toast.LENGTH_SHORT).show(); 

回答

1

你不使用==運營商匹配的Java Strings。由於String不是原始類型,因此使用.equals()方法。

因此,嘗試這一點 - 因爲它是一個對象

if (MyDB.getRow(21).getString(1).toString().equals(currentDateString)) 
+0

謝謝,if語句沒問題。 – SWE

+0

if語句沒問題。 所以如何更新特定行(where子句)在數據庫 公共布爾updateRow(字符串Site_par,字符串AttDate_Par){ \t \t字符串其中= AttDate + 「=」 + AttDate_Par; \t \t ContentValues newValues = new ContentValues(); \t \t newValues.put(Site,Site_par); \t \t newValues.put(AttDate,AttDate_Par); \t \t //將其插入到數據庫中。 \t \t return db.update(DATABASE_TABLE,newValues,where,null)!= 0; \t} – SWE

1

字符串不是由==操作符匹配。

嘗試

MyDB.getRow(21).getString(1).toString().equals(currentDateString) 

,如果你需要它不區分大小寫

MyDB.getRow(21).getString(1).toString().equalsIgnoreCase(currentDateString) 

此外 確保插入日期格式是一樣的,你匹配與

相關問題