2012-10-31 57 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,则表示没有记录

相关问题