2011-08-15 8 views

答えて

2
final String MY_QUERY = "SELECT MAX(_id) FROM organize"; 

はこれだけ

+0

emazmが –

+0

@hohotveryspicyは、私はこのクエリを試みたが、それはとして9を返しますなぜ私は最大値として10を持っているものの、それが最大値9を返しuが伝えることができます言ったように書き換えますmax n結果を取得するにはどうすればいいですか? –

6

書き換えこのライン

ID試みる多くに、感謝それは作業だが、戻り値は

public int getLastId() { 
    openDB(); 
    int id = 0; 
    final String MY_QUERY = "SELECT MAX(_id) AS _id FROM organize"; 
    Cursor mCursor = mDb.rawQuery(MY_QUERY, null); 
    try { 
      if (mCursor.getCount() > 0) { 
      mCursor.moveToFirst(); 
      id = mCursor.getInt(mCursor.getColumnIndex(MY_QUERY)); 
      } 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } finally { 
      closeDB(); 
     } 
return id; 

} 

が、私はこの問題を解決することができ、0 = mCursor.getInt(mCursor.getColumnIndex(MY_QUERY));

id = mCursor.getInt(0);//there's only 1 column in cursor since you only get MAX, not dataset 

id = mCursor.getInt(mCursor.getColumnIndex("_id")); 

以上に

そしてLogCatを見て、それはあなたの問題をご紹介します。

+0

この問題を解決できます。どうもありがとう – user836807

1

tryブロック内のコードが完全に機能することを確認しましたか?
コードがcatchブロックにジャンプし、IDが初期化した0を返します。

1

、この方法を試してみてください:屋とも

private int getMaxID(){ 
    int mx=-1; 
    try{ 
     db = this.getReadableDatabase(); 

     SQLiteDatabase db=this.getReadableDatabase(); 
     Cursor cursor=db.rawQuery("SELECT max(ID) from tblIntents ",new String [] {}); 
     if (cursor != null) 
      if(cursor.moveToFirst()) 
      { 

       mx= cursor.getInt(0); 

      } 
     // cursor.close(); 

     return mx; 
    } 
    catch(Exception e){ 

     return -1; 
    } 
} 
関連する問題