0

DBに挿入した最新の行をカーソルに取得しようとしています。多くの種類のクエリを試しましたが、何も機能していないようです。

、ここに私のコードです:

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);

*挿入メソッドが機能します。DBテーブルの行を見ました。*getCount は、insertId と同じ数を返します

しかし、最後の行をカーソルに取得しようとすると、何も取得されません。行数で-1が返されたことがカーソルに表示されます。

道に迷いました。私を助けてください :(

4

2 に答える 2

0

私が間違っていなければ、クエリに問題があります

String[] fields = new String[]{ExpDataBase.COLUMN_ID};
Cursor cursor= database.query(ExpDataBase.TABLE_NAME, fields,ExpDataBase.COLUMN_ID+"="+id, null, null, null, null);
于 2013-08-01T00:07:53.450 に答える
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);
于 2013-08-01T00:16:04.313 に答える