2012-09-18 10 views
11

Są to identyfikatory w moim stole:uzyskać pojedynczy wiersz z tabeli

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 

Co chcę wiedzieć, w jaki sposób mogę uzyskać pojedynczy rekord z tabeli na podstawie unique(KEY_ID), w tym I zbudowaliśmy getContact() metody takie jak to,

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

And Contact to klasa, gdzie mam ustawić cały getter i metody setter dla wszystkich atrybutów.

Prosimy o pomoc przy pełnym kodzie.

Odpowiedz

30

sprawdzić, czy to może pomóc ..

Zakładając, że nazwa tabeli jest urzędnik

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 .. to był pomocny .. –

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

Zakładając, że Entity Class do kontaktu, a następnie po prostu nazwać to metoda powyżej z tym.

Contact singleContact = database.getContact(id); 

następnie skontaktuj się z podmiotem kontaktu, zakładam, że masz metodę getter getPhone();

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

+1 do tworzenia własnych jednostek. Jest to łatwy sposób na uporządkowanie bez obciążania pełnowymiarowego środowiska ORM – jmaculate

+0

@ user1085828 wewnątrz db.query pierwszy parametr to nazwa tabeli, 2 to wartości, które chcemy, trzecia to klauzula Where, 4 to wartość podana, co czy wartości puste po tym oznaczają? – anup

0

Spróbuj

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