无论如何,光标都不会返回一行

时间:2013-07-31 23:57:27

标签: java android cursor

我试图将我插入数据库的最新行添加到游标中。 我尝试了很多类型的查询,似乎没什么用。

,这是我的代码:

public Expense createExpense(Expense expense) {
    ContentValues values = new ContentValues();
    values.put(ExpDataBase.COLUMN_DESCRIPTION, expense.getDesc());
    values.put(ExpDataBase.COLUMN_amount, expense.getAmount());
    values.put(ExpDataBase.COLUMN_DATE, expense.getDate().toString());
    values.put(ExpDataBase.COLUMN_category, expense.getCategory());

    Integer insertId =(int) database.insert(ExpDataBase.TABLE_NAME, null,
            values);    

    String id="'"+insertId.toString()+"'";

    Cursor c = database.query(ExpDataBase.TABLE_NAME, null,
            null, null, null, null, null);
int i=  c.getCount();


    Cursor cursor= database.query(ExpDataBase.TABLE_NAME, null,ExpDataBase.COLUMN_ID+"="+id, null, null, null, null);

* insert方法有效,我在DB表中看到了这一行。 * getCount返回与insertId相同的数字

但是当我尝试将最后一行放入游标时,我什么也得不到,我在游标中看到它在行数中返回-1。

我失去了。请帮帮我:(

2 个答案:

答案 0 :(得分:0)

如果我没弄错的话你在查询上遇到了问题

String[] fields = new String[]{ExpDataBase.COLUMN_ID};
Cursor cursor= database.query(ExpDataBase.TABLE_NAME, fields,ExpDataBase.COLUMN_ID+"="+id, null, null, null, null);

答案 1 :(得分:0)

public Expense createExpense(Expense expense) {
ContentValues values = new ContentValues();
values.put(ExpDataBase.COLUMN_DESCRIPTION, expense.getDesc());
values.put(ExpDataBase.COLUMN_amount, expense.getAmount());
values.put(ExpDataBase.COLUMN_DATE, expense.getDate().toString());
values.put(ExpDataBase.COLUMN_category, expense.getCategory());

long insertId = database.insert(ExpDataBase.TABLE_NAME, null,
        values);    

String id="'"+insertId.toString()+"'";

Cursor c = database.query(ExpDataBase.TABLE_NAME, null,
        null, null, null, null, null);
int i=  c.getCount();


Cursor cursor= database.query(ExpDataBase.TABLE_NAME, null,ExpDataBase.COLUMN_ID+"=?", new String[]{String.valueOf(insertId)}, null, null, null);