2012-09-18 25 views
11

Đây là các id trong bảng của tôi:có được một hàng duy nhất từ ​​bảng

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 

Những gì tôi muốn biết là, làm thế nào tôi có thể nhận được một hồ sơ duy nhất từ ​​bảng này trên cơ sở unique(KEY_ID), cho i này đã xây dựng một phương pháp getContact() như thế này,

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 là một lớp học nơi tôi đã đặt tất cả các phương thức getter và setter phương pháp cho tất cả các thuộc tính.

Vui lòng trợ giúp với mã hoàn chỉnh.

Trả lời

30

Xem nếu điều này có thể giúp bạn ra ..

Giả sử tên bảng của bạn là nhân viên

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 này .. nó là hữu ích .. –

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

Giả sử bạn có Entity Class cho liên lạc, Và sau đó bạn chỉ cần gọi nó phương pháp của bạn ở trên Với cái này.

Contact singleContact = database.getContact(id); 

sau đó gọi cho người liên hệ, Im giả sử bạn có phương thức getter getPhone();

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

1 để làm đơn vị của riêng bạn. Đó là một cách dễ dàng để tổ chức mà không có chi phí của một khung ORM bị thổi hoàn toàn – jmaculate

+0

@ user1085828 bên trong db.query tham số đầu tiên là tên bảng, thứ 2 là các giá trị chúng ta muốn, thứ 3 là mệnh đề Where, thứ 4 là giá trị được cung cấp, làm các giá trị null sau khi đứng này cho? – anup

0

Hãy thử

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

Các vấn đề liên quan