2012-09-18 32 views
11

Estos son los identificadores en mi mesa:obtener una sola fila de la tabla

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 

Lo que yo quiero saber es, ¿cómo puedo obtener un único registro de esta tabla en la base de unique(KEY_ID), para este i han construido un método getContact() como este,

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

y Contact es una clase donde he puesto todo el captador y el método de selección para todos los atributos.

Ayuda con el código completo.

Respuesta

30

ver si esto puede ayudar a salir ..

Asumiendo que su nombre de la tabla es dependiente

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 .. que era muy útil .. –

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

Asumiendo que tiene Entidad Clase de contacto, Y a continuación, sólo decir que es su método anterior con este.

Contact singleContact = database.getContact(id); 

luego llame a la entidad de contacto, suponiendo que tiene el método getter getPhone();

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

1 para la fabricación de sus propias entidades. Es una forma fácil de organizarse sin la sobrecarga de un marco ORM completo – jmaculate

+0

@ user1085828 dentro de db.query el primer parámetro es el nombre de la tabla, el 2 ° son los valores que queremos, el 3 ° es la cláusula Where, el 4 es el valor proporcionado, hacer los valores nulos después de este soporte? – anup

0

probar este

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

Cuestiones relacionadas