2015-10-23 48 views
-1

我想獲取所有SQLite數據庫內容並通過post方法發送它們。問題是我的代碼正在檢索除sqlite數據庫中最後一個內容以外的所有內容。任何人都可以幫助我獲得最後的內容呢?沒有檢索數據庫中的最後一個數據android

\t db=openOrCreateDatabase("StudentDB", Context.MODE_PRIVATE, null); 
 
\t \t Cursor c=db.rawQuery("SELECT * FROM student", null); 
 
\t \t if(c.getCount()==0){ 
 
\t \t \t System.out.println("Database empty"); 
 
\t \t \t 
 
\t \t \t return; 
 
\t \t } 
 
\t \t 
 
\t \t else if(c.moveToFirst()){ 
 
\t \t \t while(!c.isLast()){    //problem in this line maybe 
 
\t \t \t \t Sender = c.getString(1); 
 
\t \t \t \t TimeStamp = c.getString(2); 
 
\t \t \t \t Mesg = c.getString(3); 
 
\t \t \t \t readWebPage(c.getString(0)); //POST method 
 
\t \t \t \t c.moveToNext(); \t \t \t \t 
 
\t \t \t } \t \t \t 
 
\t \t 
 
\t \t } 
 
\t 
 
\t \t c.close(); 
 
\t }

+1

而(c.isAfterLast()!)? – Sevle

+0

@Sevle。我嘗試過,但由於它沒有從數據庫發送第一和第四個內容,因此無法正常工作。 –

回答

2

您可以使用循環來獲取數據

db=openOrCreateDatabase("StudentDB", Context.MODE_PRIVATE, null); 
    Cursor c=db.rawQuery("SELECT * FROM student", null); 
     if(c.getCount()==0){ 
      System.out.println("Database empty"); 

      return; 
     } 

     else if(c.moveToFirst()){ 
      for(int i=0;i<c.getCount();i++){    
       Sender = c.getString(1); 
       TimeStamp = c.getString(2); 
       Mesg = c.getString(3); 
       readWebPage(c.getString(0)); //POST method 
       c.moveToNext();     
      }   

     } 

     c.close(); 
} 
+0

非常感謝。這看起來是完成魔術的最佳方式。 –

0

試試這個:

if(c!=null && c.moveToFirst()) 
{ 
do{ 
String sender = c.getString(c.getColumnIndex("column_name")); 
}while(c.moveToNext()) 

} 
+0

它以隨機順序發送內容。我輸入了6個內容,僅發送了5個內容。它遺漏了第四個內容。 –

+0

您的問題可能與您的異步POST相關,即任何「readWebPage()」發送,而不是您的光標操作。在「readWebPage()」之前添加一個記錄器來確認。 – Sevle

相關問題