2013-05-13 150 views
0

您好,感谢您的帮助!我的数据库有4列,我需要一种方法来返回每次添加到最后一列的最新项目。列名是spinInterval,值是一个int。数据库查询只返回列名

database http://www.bthindiet.com/datatable.jpg

以我将对DBAdapter I类建立了一套方法用于检索数据与

public Cursor fetchReminder(long rowId) throws SQLException { 

    Cursor mCursor = 

      mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID, 
        KEY_TITLE, KEY_BODY, KEY_DATE_TIME, KEY_SPINNER}, KEY_ROWID + "=" + rowId, null, 
        null, null, null, null); 
    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 
    return mCursor; 

} 

我尝试的代码被
字符串重复= RemindersDbAdapter.KEY_SPINNER.toString();
但所有返回的是spinInterval列的名称。什么是正确的方式来查询该信息(60 * 60 * 1000 * 8),并且它会工作,每次一个新的项目被添加到数据库?我将添加该信息到我的alarmManager setRepeating调用。

public class ReminderManager { 

private Context mContext; 
private AlarmManager mAlarmManager; 



String repeat = RemindersDbAdapter.KEY_SPINNER.toString(); 

private static final String TAG = "MyActivity"; 



public ReminderManager(Context context) { 
    mContext = context; 
    mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
} 

public void setReminder(Long taskId, Calendar when) { 
    Log.e(TAG, repeat); 
    Intent i = new Intent(mContext, OnAlarmReceiver.class); 
    i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId); 

    PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT); 

    mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), repeat, pi); 
} 

}

谁能帮我这个正确的代码?我真的被困住了。

+0

你是什么意思“返回最新的项目添加到最后一列”你想按日期排序并返回最新的最后一行..然后得到最后一列值? – JustinDanielson 2013-05-13 18:14:14

+0

你不是在你提供的代码中调用你的fetchReminder,你应该这样做。以及检查mDb是否不为空。如果它为空,请在查询之前打开数据库。 – JustinDanielson 2013-05-13 18:15:51

+0

我需要通过id号对它进行排序。 3是最新的,现在需要那个。下一次用户保存了一个新的提醒,它会是ID 4,我会需要第4行spinInterval结果等我不知道什么代码来实现 – JeffK 2013-05-13 18:25:21

回答

0
String selectQuery = "SELECT * FROM" + DATABASE_TABLE +"ORDER BY KEY_ROWID DESC LIMIT 1"; 
SQLiteDatabase db = this.getWritableDatabase(); 
Cursor cursor = db.rawQuery(selectQuery, null);