wake-up-neo.com

Quadrat Überprüfen Sie, ob die Tabelle leer ist

Nun, ich habe eine Datenbank und es gibt viele Tabellen. Im Allgemeinen sind Tabellen jedoch leer . Ich möchte überprüfen, ob eine Datenbanktabelle leer ist . Wenn die Tabelle leer ist, wird sie vom Programm gefüllt.

public static long queryNumEntries (SQLiteDatabase db, String table)

Ich werde es verwenden, aber es erfordert API 11.

23
mehmet

sie können select count(*) from table ausführen und prüfen, ob count> 0 es nicht zulässt.

mögen

 SQLiteDatabase db = table.getWritableDatabase();
String count = "SELECT count(*) FROM table";
Cursor mcursor = db.rawQuery(count, null);
mcursor.moveToFirst();
int icount = mcursor.getInt(0);
if(icount>0)
//leave 
else
//populate table
31
Waqar Ahmed

Führen Sie einen SELECT COUNT aus:

boolean empty = true
Cursor cur = db.rawQuery("SELECT COUNT(*) FROM YOURTABLE", null);
if (cur != null && cur.moveToFirst()) {
    empty = (cur.getInt (0) == 0);
}
cur.close();

return empty;
7
Luca Sepe

Optimale Lösungen

public boolean  isMasterEmpty() {

    boolean flag;
    String quString = "select exists(select 1 from " + TABLE_MASTERS  + ");";

    SQLiteDatabase db = getReadableDatabase();
    Cursor cursor = db.rawQuery(quString, null);
    cursor.moveToFirst();
    int count= cursor.getInt(0);
    if (count ==1) {
        flag =  false;
    } else {
        flag = true;
    } 
    cursor.close();
    db.close();

    return flag;
    }
6
Dwivedi Ji
 public boolean isEmpty(String TableName){

    SQLiteDatabase database = this.getReadableDatabase();
    int NoOfRows = (int) DatabaseUtils.queryNumEntries(database,TableName);

    if (NoOfRows == 0){
        return true;
    }else {
        return false;
    }
}
4
Mahesh Uligade

Hier ist eine bessere Option:

public boolean validateIfTableHasData(SQLiteDatabase myDatabase,String tableName){
    Cursor c = myDatabase.rawQuery("SELECT * FROM " + tableName,null);
    return c.moveToFirst();
}
2

So kannst du es machen -

if(checkTable("TABLE"))
{
  //table exists fill data.
}

Methode zur Überprüfung der Tabelle

public static boolean checkTable(String table) {
Cursor cur2 = dbAdapter.rawQuery("select name from sqlite_master where name='"
        + table + "'", null);

if (cur2.getCount() != 0) {
    if (!cur2.isClosed())
        cur2.close();
    return true;
} else {
    if (!cur2.isClosed())
        cur2.close();
    return false;
}
}
1
My God

Ich denke, diese Lösung ist besser:

    boolean flag;

    DatabaseHelper databaseHelper = new DatabaseHelper(getApplicationContext(), DatabaseHelper.DATABASE_NAME, null, DatabaseHelper.DATABASE_VERSION);
    try {
        sqLiteDatabase = databaseHelper.getWritableDatabase();
    } catch (SQLException ex) {
        sqLiteDatabase = databaseHelper.getReadableDatabase();
    }
    String count = "SELECT * FROM table";
    Cursor cursor = sqLiteDatabase.rawQuery(count, null);
    if (cursor.moveToFirst()){
        flag = false;
    } else {
        flag = true;
    }
    cursor.close();
    sqLiteDatabase.close();

    return flag;

moveToFirst() check table und gibt true zurück, wenn die Tabelle leer ist. Antwort, die als richtig markiert ist - verwendet eine zusätzliche Prüfung.