2010-08-10 3 views
0

Voir le titre pour plus d'explications.Interrogation de la base de données SQLite dans l'activité Android - aucune colonne n'a été trouvée, bien qu'elle existe

Voici la méthode que je utilise:

public Cursor getClientByName(String name) throws SQLException { 

    name = name.trim(); 

    Cursor mCursor = 

     mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME}, KEY_NAME + "=" + name, null, 
       null, null, null, null); 

    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 

    return mCursor; 

} 

Et voici l'appel à la méthode:

list.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long vId) { 

      String name = ((TextView) view).getText().toString(); 

      // Toast.makeText(AvoidForeclosure.this, name, Toast.LENGTH_LONG).show(); 

      Cursor cD = db.getClientByName(name); 
      cD.moveToLast(); 
      int id = cD.getInt(0); 

      Intent intent = new Intent(); 
      intent.setClass(view.getContext(), CurrentMarketValue.class); 
      intent.putExtra("clientId", id); 
      startActivity(intent); 

     } 
     }); 

Toute idée pourquoi il serait jeter le « pas de colonne avec ce nom = Test ", bien que mon explorateur de DB montre qu'il y a bien une colonne nommée name et une valeur dans une rangée nommée Test?

Répondre

1
public Cursor getClientByName(String name) throws SQLException { 

     name = name.trim(); 

     String q = "SELECT _id, name FROM " + DATABASE_TABLE + " WHERE name=?"; 

     Cursor mCursor = mDb.rawQuery(q, new String[] { name }); 


     if (mCursor != null) { 
      mCursor.moveToFirst(); 
     } 

     return mCursor; 

    } 

Résout ce problème.

Questions connexes