2013-07-31 3 views
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()); 

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

* метод вставки работает, я видел строку в таблице БД. * getCount возвращает тот же номер, что и insertId

, но когда я пытаюсь получить последнюю строку в курсоре, я ничего не получаю, я вижу в курсоре, что он возвратил -1 в количестве строк.

im lost. Пожалуйста, помогите мне :(

+0

Что Строковое значение является 'ExpDataBase.COLUMN_ID'? – ddmps

ответ

0

Если я не ошибаюсь, у вас есть проблемы на запрос

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

он не работал, спасибо, хотя! –

+0

@PavelKrivosheev Вы уверены, что id из "String id =" '"+ insertId.toString() +"' ";" является правильным? – Dporem

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

nope, все еще получая нулевые строки назад .. thanks: \ –

+0

Что такое ваш код, чтобы получить строку из курсора? –

Смежные вопросы