2012-09-18 20 views
11

單列這些都是在我的表的ID:得到表

KEY_ID(autoincremented integer primary key) KEY_NAME(text)  KEY_PH_NO(text) 

1            james     1234567890 
2            kristein    6484996755 
3            Roen     4668798989 
4            Ashlie     6897980909 

我想知道的是,我怎麼能得到的unique(KEY_ID)的基礎上,該表的一條記錄,爲了這個,我相繼建成了getContact()方法就是這樣,

Contact getContact(int id) { 
    SQLiteDatabase db = this.getReadableDatabase(); 

    Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID, 
      KEY_NAME, KEY_PH_NO }, KEY_ID + "=?", 
      new String[] { String.valueOf(id) }, null, null, null, null); 
    if (cursor != null) 
     cursor.moveToFirst(); 

    Contact contact = new Contact(Integer.parseInt(cursor.getString(0)), 
      cursor.getString(1), cursor.getString(2)); 
    // return contact 
    return contact; 
} 

而且Contact是我設置了所有getter和setter方法對所有屬性的類。

請幫忙完整的代碼。

回答

30

看看這可以幫助你..

假設你的表名員工

public String getEmployeeName(String empNo) { 
    Cursor cursor = null; 
    String empName = ""; 
    try { 
     cursor = SQLiteDatabaseInstance_.rawQuery("SELECT EmployeeName FROM Employee WHERE EmpNo=?", new String[] {empNo + ""}); 
     if(cursor.getCount() > 0) { 
      cursor.moveToFirst(); 
      empName = cursor.getString(cursor.getColumnIndex("EmployeeName")); 
     } 
     return empName; 
    }finally { 
     cursor.close(); 
    } 
} 
+0

TENX ..它是有幫助.. –

10
Contact getContact(int id) { 
    SQLiteDatabase db = this.getReadableDatabase(); 

    Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID, 
     KEY_NAME, KEY_PH_NO }, KEY_ID + "=?", 
     new String[] { String.valueOf(id) }, null, null, null, null); 
    if (cursor != null) 
     cursor.moveToFirst(); 

    Contact contact = new Contact(Integer.parseInt(cursor.getString(0)), 
         cursor.getString(1), cursor.getString(2)); 
    // return contact 
    return contact; 
} 

假設你有實體類的聯繫人,然後你只需要調用它的方法上面有了這個。

Contact singleContact = database.getContact(id); 

然後調用聯繫實體,我假設你有方法getter getPhone();

Log.d("Phone Number :" , singleContact.getPhone()); 
+0

+1製作自己的實體。這是一個簡單的方法來保持組織的架構,而沒有一個完整的ORM框架的開銷 – jmaculate

+0

@ user1085828在db.query裏面第一個參數是表名,第二個是我們想要的值,第三個是Where子句,第四個是提供的值,什麼在此之後做空值? – anup

0

試試這個

cursor.moveToPosition(position); cursor.getString(listaTarefas1.getColumnIndex("Item"))