2014-03-07 80 views
0

問題:在SQLite數據庫瀏覽器中創建的表的查詢返回0。採取SQLite database.query()返回0

步驟:

1)的創建一個表:

create table friends (id integer primary key, name TEXT, email TEXT, phone NUMERIC); 

2)填充表(手動地)。

3)試圖從表中選擇所有:

static final String DATABASE_NAME = "lab5.db"; 
    String[] columns = new String[] { 
       KEY_ROWID, 
       KEY_NAME, 
       KEY_EMAIL, 
       KEY_PHONE }; 
    Cursor allRows = db.query(DATABASE_TABLE, columns, null, null, null, null, null); 

結果:所有行返回0行。

任何幫助,將不勝感激。

+1

獲得遊標後。嘗試cursor.moveToFirst()然後檢查。 –

+0

檢查你的KEY_NAME值是否爲「名稱」? – Andrain

+0

即使你說有,也沒有數據。該表已創建,查詢語法正確,因爲沒有例外。 – laalto

回答

0

這可能是因爲您已經創建了一個使用不同名稱的表,即您在創建表時沒有使用過字符串鍵值。在讀取數據時,您正試圖使用​​可能與實際列名稱不同的字符串鍵值來獲取列。

所以最好使用列的實際名稱之外鍵作爲KEY_ROWID,KEY_NAME,KEY_EMAIL,KEY_PHONE嘗試獲取列如下詳細說明:

String[] columns = new String[] { 
      id, 
      name, 
      email, 
      phone}; 

而且更改數據庫表名,如下實際的表名:

Cursor allRows = db.query("friends", columns, null, null, null, null, null);