2013-09-06 7 views
0

J'ai une base de données sur le formulaire de l'employé, quand je passe l'ID email de l'employé, je dois obtenir les détails de l'employé.Am impossible d'obtenir les détails et j'ai référé ce lien Get the single row with cursor et link.impossible d'obtenir les valeurs de lignes de base de données dans la base de données android?

Mon code

Code de base de données

public List<String> getContact(String eid) { 

List<String> labels = new ArrayList<String>(); 
SQLiteDatabase db = this.getReadableDatabase(); 
Cursor cursor= db.query(TABLE_EMPLOY, new String[] {KEY_EMAIL,"email"}, "email=?",new String[]{eid}, null, null, null); 
if (cursor != null){ 
    do{ 
    cursor.moveToFirst(); 
    labels.add(cursor.getString(1)); 
    } while (cursor.moveToNext()); 
}cursor.close(); 
db.close(); 

// returning lables 
return labels; 

}

Code d'activité

dataBase db = new dataBase(this); 
    List<String> studentInfo = db.getContact(eid); 
    for (String cn : studentInfo){ 
     Toast.makeText(getApplicationContext(),cn.toString(), Toast.LENGTH_LONG).show(); 
    } 

erreur journal

09-06 16:56:27.330: E/AndroidRuntime(21699): FATAL EXCEPTION: main 
09-06 16:56:27.330: E/AndroidRuntime(21699): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.app.LoadedApk.makeApplication(LoadedApk.java:482) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.app.ActivityThread.access$1300(ActivityThread.java:123) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.os.Looper.loop(Looper.java:137) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.app.ActivityThread.main(ActivityThread.java:4424) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at java.lang.reflect.Method.invokeNative(Native Method) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at java.lang.reflect.Method.invoke(Method.java:511) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at dalvik.system.NativeStart.main(Native Method) 
09-06 16:56:27.330: E/AndroidRuntime(21699): Caused by: java.lang.NullPointerException 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:362) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.app.LoadedApk.getClassLoader(LoadedApk.java:305) 
09-06 16:56:27.330: E/AndroidRuntime(21699): at android.app.LoadedApk.makeApplication(LoadedApk.java:474) 
09-06 16:56:27.330: E/AndroidRuntime(21699): ... 11 more 

modifier quand je passe l'identifiant e-mail que je dois obtenir l'ID, nom, surnom, nom d'utilisateur, mot de passe, sans mobile

+0

ce que vous avez vu dans le chat journal vous pouvez nous dire votre logcat. S'il vous plaît déboguer votre code ce que vous obtenez à 'SQLiteDatabase db = this.getReadableDatabase();' cette ligne je soupçonne que ce serait null ... – BBdev

+1

Obtenez-vous une exception? S'il vous plaît poster la trace complète de logcat. –

+0

j'ai ajouté le message de chat de journal – user2640499

Répondre

0

Assurez-vous que que la base de données ont été créés lorsque votre premier appel à votre base de données. . par exemple

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

@Override 
public void onCreate(SQLiteDatabase db) { 
    String CREATE_EMPLOY_TABLE = "CREATE TABLE " + TABLE_EMPLOY + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," 
      + KEY_NAME + " TEXT," 
      + KEY_EMAIL + " TEXT" 
      + ")"; 
     db.execSQL(CREATE_EMPLOY_TABLE); 
} 

par ce point vérifier votre requête

Cursor cursor = db.query(TABLE_EMPLOY, new String[] { 
      KEY_ID, 
      KEY_NAME, 
      KEY_EMAIL 
}, KEY_EMAIL + " = ?", new String[] { String.valueOf(eid) }, null, null, null, null); 
Questions connexes