2012-10-31 183 views
-1

我寫了代碼來檢查數據庫是否有值,如果數據庫有記錄,我想移動到一個活動,如果沒有記錄,我想移動到另一個活動。但是我的代碼移動到一個活動總是。檢查數據庫是否有記錄

final Cursor cursor = dbHelper.fetchAllRecords(); 

     if(cursor!=null) 
     { 
      Intent i4=new Intent(MainActivity.this,MyMenu.class); 
      startActivity(i4); 
      this.finish(); 
     } 
+2

沒有記錄並不表示遊標是空的。你的方法是擰,你應該計數記錄,而不是全部讀取它們 – njzk2

+0

@ njzk2你是對的。它不是一個很好的方式來獲取所有記錄來檢查記錄是否可用?看到這個優化的解決方案http://stackoverflow.com/questions/13160185/to-check-the-database-having-record-or-not/13160258#13160258 –

回答

0
if(cursor!=null && cursor.getCount() > 0) 
    { 
     Intent i4=new Intent(MainActivity.this,MyMenu.class); 
     startActivity(i4); 
     this.finish(); 
    } 
0

使用此功能來檢查記錄

public boolean isDataAvailable() 
    { 

     SQLiteDatabase db = mdbHelper.getReadableDatabase(); 
     Cursor cursor = null; 
     try { 
     cursor = db.rawQuery("SELECT Count(*) FROM"+ TABLE_NAME, null); 
     cursor.moveToFirst(); 
      int rowCount = cursor.getInt(0); 
     if(rowCount>0) 
     return true; 
     else 
      return false; 
     }catch (Exception e) { 
      return false; 
     } 
     finally { 
      if (cursor != null && !cursor.isClosed()) cursor.close(); 
      } 

    } 
0

創建一個方法來獲得算在你的dbhelper並使用該查詢

"SELECT COUNT(word) as WORD_COL FROM " + WORD_TABLE 

這將送你回去如果count爲0,則表示沒有記錄

相關問題