我试图将我插入数据库的最新行添加到游标中。 我尝试了很多类型的查询,似乎没什么用。
,这是我的代码:
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。
我失去了。请帮帮我:(答案 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);