2014-06-23 107 views
0

我想從我的SQLite表中獲取數據的工作,我運行此查詢:SQLite的選擇不與Where子句

SQLiteDatabase db = this.getWritableDatabase(); 
// int memberId = 1234 
Cursor rs = db.rawQuery("select username, password from users where memberId = ? limit 1", new String[]{String.valueOf(memberId)}); 
System.err.println("Rows: " + rs.getCount()); 

輸出是Rows: 0

但是當我運行此查詢:

Cursor rs = db.rawQuery("select username, password, memberId from users limit 1", new String[]{}); 
rs.moveToFirst(); 
System.err.println(rs.getString(0) + ":" + rs.getString(1) + ":" + rs.getString(2)); 

我得到username:xxxx:1234

爲什麼當我添加一個where子句這是打破?

+0

也許你正在使用的'memberId'作爲查詢參數在表中不存在。 – CommonsWare

+2

或你的'新的字符串...'業務產生的值與分貝中的值不匹配。 –

+0

@CommonsWare它確實存在,我只是檢查。 –

回答

1

正如@Ryan Naddy指出的那樣 - 博覽會之一和博覽會2之間的區別在於您稱之爲「moveToFirst()」 - 您需要這樣做,因爲光標位於第一個條目之前。

看到這個article