2017-03-18 15 views
-2

データベースにすでに5行があるかどうかを確認したいが、execSQLメソッドを使用してSELECTを呼び出すことはできないので、voidを返すので、if文に収まるように見える。だから、単純な修正があるのですか、あるいは別のやり方をしなければならないのですか?"if"ステートメントでSELECTステートメントを使用するために呼び出すSQLiteDatabaseメソッド?

//add a new row to the database 
public void addProduct(Products product){ 

    SQLiteDatabase db = this.getWritableDatabase(); 
    if(db.execSQL("SELECT Count * FROM " + TABLE_PRODUCTS) == 5){ 
     ContentValues values = new ContentValues(); 
     values.put(COLUMN_PRODUCTNAME, product.get_productname()); 
     db.insert(TABLE_PRODUCTS, null, values); 
     db.close(); 
    } 
} 
+0

http://stackoverflow.com/questions/18097748/how-to-get-row- count-in-sqlite-using-androidはこれを参照しています。 –

+0

**クエリ**については、 'rawQuery()'を使用してください。 **コマンド**については、 'execSQL()'を使用してください。 SQLクエリとSQLコマンドの違いを知っている場合。 –

答えて

3

結果はこのようなものかもしれません。この

SQLiteDatabase db = this.getReadableDatabase(); 
if(DatabaseUtils.queryNumEntries(db, TABLE_PRODUCTS) == 5){ 
    ContentValues values = new ContentValues(); 
    values.put(COLUMN_PRODUCTNAME, product.get_productname()); 
    db.insert(TABLE_PRODUCTS, null, values); db.close(); 
} 
-1

をお試しください:

public int addProduct() 
{ 
String selectQuery = "SELECT * FROM TABLE_PRODUCTS";   
SQLiteDatabase database = this.dbOpenHelper.getReadableDatabase(); 
Cursor c = database.rawQuery(selectQuery, null); 
c.moveToFirst(); 
int total = c.getCount(); 
c.close(); 

return total; 
} 
関連する問題