2012-05-27 66 views
0

尝试在我的android应用程序的sqlite中获取“选项”列所在的“value”列的值=“lastclick”。在sqlite中检索sqlite列中的值

这里是我的功能代码:

public String getLastClick() { 
    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery("SELECT value FROM config where option='lastclick'", null); 
    cursor.moveToFirst(); 
    return cursor.getString(0); 
} 

它似乎并没有被正确的工作...我使用一个条件语句下面的代码,它不会永远识别字符串即使我第一次在VD上安装应用程序时,它的值为0,我的onCreate函数会在数据库中插入一行“lastclick”值为“0”的行。

反正这里是代码:

DatabaseHandler db = new DatabaseHandler(this); 
    String lastClick = db.getLastClick(); 

    // check if its the first time they've ever clicked 
    if (lastClick != "0") { 
     String millis = String.valueOf(Long.parseLong(dateString) - Long.parseLong(lastClick)); 
     db.insertRecord(millis); 
    } 

“选项” 和 “值” 都是VARCHAR的。

+0

而且,千万记得要关闭你的'Cursor's。放一个'try {return cursor.moveToNext()? cursor.getString(0):null; } finally {cursor.close();}'很容易,应该是基本卫生的一部分。 – Jens

回答

2

比较Strings正确的方法是使用equals方法,所以不是:

if (lastClick != "0") { 

写:

if (!lastClick.equals("0")) { 
+0

wouldnt它是'if(!lastClick.equals(“0”)){'? – scarhand

+0

@scarhand是的,我编辑了答案。 – Luksprog