android中的rawQuery

时间:2013-12-30 09:43:28

标签: android sqlite

我的应用程序中有一个数据库。我想选择特定的行。 这是我的查询字符串:

SQLiteDatabase db = this.getReadableDatabase();

String C_PRODUCT_CATEGORY_ID = category_id;
String TABLE_PRODUCT = tblProduct;
String categoryID = 1;

String select = String.format("SELECT %s FROM %s WHERE %s=%s",
    C_PRODUCT_CATEGORY_ID, TABLE_PRODUCT, C_PRODUCT_CATEGORY_ID,
    categoryID);
Cursor c = db.rawQuery(select,new String[]{});

光标c为空!当我使用sqlite编辑器在设备上使用.db文件并运行

SELECT category_id FROM tblProduct WHERE category_id=1 

它返回2行。 怎么了?请帮帮我!

4 个答案:

答案 0 :(得分:2)

使用数据库的查询方法,

Cursor c = db.query(TABLE_PRODUCT, null, C_PRODUCT_CATEGORY_ID+"=?", new String[]{categoryID}, null, null, null);

希望这对你有用!!

答案 1 :(得分:0)

SQLiteDatabase db = this.getReadableDatabase();
String categoryID = 1;
String select = "SELECT category_id FROM tblProduct WHERE category_id="+categoryID;
Cursor c = db.rawQuery(select,new String[]{});

请使用此

答案 2 :(得分:0)

可能需要在'='之后加上'和';我的意思是:

String select = String.format("SELECT %s FROM %s WHERE %s='%s'",
    C_PRODUCT_CATEGORY_ID, TABLE_PRODUCT, C_PRODUCT_CATEGORY_ID,
    categoryID);
 Cursor c = db.rawQuery(select,null);

答案 3 :(得分:-1)

试试这个

  

光标c = dB。 rawQuery(select,null);