標籤:http io ar java sp 資料 on 問題 代碼
============問題描述============
我建立了一個空表,裡面並沒有添加任何資料,用下面這個方法傳回值竟然是1
String sql = "select count(*) from " + TABLENAME;return sqLiteDatabase.rawQuery(sql, null).getCount();
但是用下面這個方法就是0,不知道為什麼,有大神知道嗎
return sqLiteDatabase.query(TABLENAME, null, null, null, null, null, null).getCount();
============解決方案1============
你的第一個代碼是 select count(*) ,那麼及時沒有資料也會返回一個0不是嗎?所以其實 select 之後,是有一個傳回值的,第二個就是因為資料庫為空白,所以數目為0
你既然用了 select count(*),就沒有必要用 getCount()了,從 getCount()中是拿不到你 select 的值的
============解決方案2============
to HarryWeasley
你的代碼中rawQuery和query構造的sql語句不一樣,得到結果的cursor也不一樣。
rawQuery的sql語句是select count(*) from ,cursor的結果是一條記錄,裡面是0,getCount()=1
query的sql語句是select * from,cursor沒有記錄,getCount()=0
cursor.getCount()
return the number of rows in database table.
http://www.ijy6.com/questions/5441125979763/SQLiteDatabase-query-和-rawQuery-的區別
sqlite資料庫的問題