2014-07-18 3 views
0

사용자가 의사에게 일정을 요청할 수있는 프로젝트 앱이 있습니다.쿼리를 사용하여 사용자 데이터를 검색하는 방법

내 문제는 선택한 의사를 기반으로 환자 데이터를 검색하고 의사 프로필에 ListView으로 표시하는 방법을 모르므로 의사가 로그인 할 때 환자가 일정을 요청할 수 있음을 알 수 있습니다.

데이터베이스

public class SqlDbHelper extends SQLiteOpenHelper { 

public static final String DATABASE_TABLE_DOC = "doc_table"; 
public static final String DATABASE_TABLE_PATIENT = "patient_table"; 
public static final String DATABASE_NAME = "doc_db"; 
public static final int DATABASE_VERSION = 1; 

public static final String _id = "_id"; 
public static final String COL_REG_ID = "reg_id"; 
public static final String COL_DOC_CODE = "doc_code"; 
public static final String COL_FNAME = "firstname"; 
public static final String COL_LNAME = "lastname"; 
public static final String COL_SPEC = "specialty"; 
public static final String COL_CARD_ID = "card_id"; 
public static final String COL_REGION = "region"; 
public static final String COL_LOCATION = "location"; 
public static final String COL_CONTACT = "contact"; 
public static final String SCHED_MON = "monday"; 
public static final String SCHED_TUE = "tuesday"; 
public static final String SCHED_WED = "wednesday"; 
public static final String SCHED_THU = "thursday"; 
public static final String SCHED_FRI = "friday"; 
public static final String SCHED_SAT = "saturday"; 
public static final String SCHED_SUN = "sunday"; 
public static final String COL_PASS = "password"; 
public static final String COL_CONPASS = "confirm_password"; 
private static final String CREATE_DATABASE = "CREATE TABLE " 
     + DATABASE_TABLE_DOC + " (" + _id 
     + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_REG_ID 
     + " TEXT NOT NULL, " + COL_DOC_CODE + " TEXT NOT NULL, " 
     + COL_FNAME + " TEXT NOT NULL, " + COL_LNAME + " TEXT NOT NULL, " 
     + COL_SPEC + " TEXT NOT NULL, " + COL_CARD_ID + " TEXT NOT NULL, " 
     + COL_REGION + " TEXT NOT NULL, " + COL_LOCATION 
     + " TEXT NOT NULL, " + COL_CONTACT + " TEXT NOT NULL, " + SCHED_MON 
     + " TEXT NOT NULL, " + SCHED_TUE + " TEXT NOT NULL, " + SCHED_WED 
     + " TEXT NOT NULL, " + SCHED_THU + " TEXT NOT NULL, " + SCHED_FRI 
     + " TEXT NOT NULL, " + SCHED_SAT + " TEXT NOT NULL, " + SCHED_SUN 
     + " TEXT NOT NULL, " + COL_PASS + " TEXT NOT NULL, " + COL_CONPASS 
     + " TEXT NOT NULL);"; 

public static final String id = "_id"; 
public static final String PAT_ID = "patient_id"; 
public static final String PAT_CARD_ID = "patient_cardid"; 
public static final String PAT_FNAME = "patient_firstname"; 
public static final String PAT_MNAME = "patient_middlename"; 
public static final String PAT_LNAME = "patient_lastname"; 
public static final String PAT_ADDRESS = "patient_address"; 
public static final String PAT_AGE = "patient_age"; 
public static final String PAT_DOB = "patient_dob"; 
public static final String PAT_BTYPE = "patient_bloodtype"; 
public static final String PAT_MEDALLERGY = "patient_medallergy"; 
public static final String PAT_MEDCOND = "patient_medcondition"; 
public static final String PAT_CONTACT = "patient_contact"; 
private static final String CREATE_PAT_DATABASE = "CREATE TABLE " 
     + DATABASE_TABLE_PATIENT + " (" + _id 
     + " INTEGER PRIMARY KEY AUTOINCREMENT, " + PAT_ID 
     + " TEXT NOT NULL, " + PAT_CARD_ID + " TEXT NOT NULL, " + PAT_FNAME 
     + " TEXT NOT NULL, " + PAT_MNAME + " TEXT NOT NULL, " + PAT_LNAME 
     + " TEXT NOT NULL, " + PAT_ADDRESS + " TEXT NOT NULL, " + PAT_AGE 
     + " TEXT NOT NULL, " + PAT_DOB + " TEXT NOT NULL. " + PAT_BTYPE 
     + " TEXT NOT NULL, " + PAT_MEDALLERGY + " TEXT NOT NULL, " 
     + PAT_MEDCOND + " TEXT NOT NULL, " + PAT_CONTACT 
     + " TEXT NOT NULL);"; 

public SqlDbHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    db.execSQL(CREATE_DATABASE); 
    db.execSQL(CREATE_PAT_DATABASE); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub 
    db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_DOC); 
    db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_PATIENT); 
    onCreate(db); 
} 

} 
+0

것도, 내가 SQLite는 – nobalG

+0

아니에서

SqlDbHelper obj = new SqlDbHelper(this); ArrayList<String> patients = obj.getPatientNames(docId) //Pass the doctor id here ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, patients); listView.setAdapter(adapter); // Set this adapter to your listview 
user3766257

답변

0

쓰기 당신의 SqlDbHelper 클래스에서이 방법

public ArrayList<String> getPatientNames(String docId) { 

    ArrayList<String> list = new ArrayList<String>(); 
    String query = "Select * from DATABASE_TABLE_PATIENT where _id ='" 
      + docId+ "'"; 
    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(query, null); 

    if (cursor.moveToFirst()) { 
     do { 

      db.beginTransaction(); 
      try { 
       list.add(cursor.getString(3)+" "+cursor.getString(4)+" "+cursor.getString(5)); 
       db.setTransactionSuccessful(); 
      } catch (SQLException e) { 
       e.printStackTrace(); 
       db.endTransaction(); 
      } finally { 
       db.endTransaction(); 
      } 
     } while (cursor.moveToNext()); 
    } 
    return list; 
} 

위 메서드는 메서드에 전달 된 의사의 "_id"에 해당하는 모든 환자의 이름 목록을 반환합니다.

가 로그 캣
+0

를 조회 및 사용에 대한 새의 내 문제의 종류를 조회하는 방법을 알고하지 않습니다

이제 ListView에 대한 어댑터를 만드는 환자 이름이 ArrayList를를 사용 저는'String docId = textView.getText(). toString;'이제 ArrayList에서 nullpointerexception을 얻습니다. patients = obj.getPatientNames (docId) – user3766257

+0

obj에 null이 있음을 의미합니다. 이 코드를 작성 했습니까? 'SqlDbHelper obj = new SqlDbHelper (this);' –

2
String query = "SELECT * FROM " + TABLE NAME + " where "+ PAT_ID + "='" + user Id + "'"; 

SQLiteDatabase db = dbHelper.getHandle(); 

cursor = db.rawQuery(query, null);  
cursor.moveToLast();  
startManagingCursor(cursor); 

if (cursor.moveToFirst()) {  
    do {  
     // do .... 
     String id = cursor.getString(0);  
    } while (cursor.moveToNext());  
} 
관련 문제