2015-11-25 30 views
-1

中的所有行我想從我的數據庫中獲取行數 如何創建一個將行數作爲int返回的方法? 這裏是我得到的,但它只返回1號Java SQL獲取列

public int getAllId() { 

    SQLiteDatabase db = this.getWritableDatabase(); 

    int x=0; 
    String where = null; 
    Cursor c = db.rawQuery("SELECT COUNT (*) FROM " + TABLE_PRODUCTS, null); 


    while (c.isAfterLast() == false) { 



     c.moveToNext(); 

    } 

    db.close(); 
    return c.getCount(); 
+1

通過執行一個SELECT CO UNT(*)FROM MYTABLE'在你的方法中。表現出一些主動性,這些東西有很多可用的信息。 – Kayaman

+0

是的,我在這裏查看了很多例子和問題,但是我無法適應我的代碼,因爲我仍然是java的新手 –

+0

問題是廣泛的。我們看不到您的代碼,也看不到您迄今爲止所做的工作。請考慮更新您的問題。 – Marcinek

回答

0

我發現做到這一點得益於

SQLite Query in Android to count rows

的方式這是我想出了這個代碼:

public int getRowCount() throws Exception { 
    SQLiteDatabase db = this.getWritableDatabase(); 


    Cursor mCount= db.rawQuery("SELECT COUNT (*) FROM " + TABLE_PRODUCTS, 
    null); 

    mCount.moveToFirst(); 
    int rows= mCount.getInt(0); 
    mCount.close(); 

return rows; 

} 
0

那麼,如果你使用的是簡單的JDBC沒有任何庫,你應該能夠從結果 回用兩個我這樣做了一段時間獲得的行數接近:

1.

rs.last(); 
    rs.getRow(); 

2.

 int rowcount = 0; 
     while (rs.next()) { 
     // more processing here 
     rowCount++; 
    } 

但是作爲一個謹慎的話,我只在oracle和mysql dbs上使用過這個。此外,如果連接是ResultSet.TYPE_FORWARD_ONLY,您將無法返回。

你可以閱讀更多有關結果集從http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html

希望這有助於:)