Android Cursor Index out of Bound Exception
gibt es eine Sache falsch mit diesem code, ich möchte zur Abfrage der Daten durch die Verwendung von barcode und es mir zeigen, dass Cursor Index out of Bound exception .
public String getIdByBarcode(String ss) throws SQLException{
String[] column = new String[]{Pro_ID,Pro_Barcode, Pro_Name,Pro_NameKhmer, Pro_Quantity, Pro_Price, Pro_Description, Pro_Date};
Cursor c = ourDatabase.query(TABLE_NAME, column, Pro_Barcode + "= '" + ss + "' " , null, null, null, null);
if(c != null){
c.moveToFirst();
String id = c.getString(0);
Log.v(id, id + "Id" );
return id;
}
return null;
}
InformationsquelleAutor user2149618 | 2013-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Keine Ergebnisse in der
Cursor
. Sie sollten überprüfen, wasmoveToFirst()
zurück (wahrscheinlichfalse
). Auch sollten Sie verwendenmoveToNext()
, nichtmoveToFirst()
. Auch aufpassen, dass man nicht überprüfenss
parameter. Dies könnte dazu führen, SQL-injection-Schwachstellen. Sie sollten die Verwendung von Parametern. Auch ich denke, Sie können mit einem einzigen return in der Methode.InformationsquelleAutor m0skit0
Literatur moveToFirst () - Methode:
Damit Ihre moveToFirst Aufruf fehlschlägt(weil cusrsor hat 0 Elemente) und das ist der Grund für den Absturz.
Hierzu:
InformationsquelleAutor Rajeev
versuchen, diese
id
wird immer, immer das Letzte element. Nicht zu vergessenid
ist nicht zugänglich von außerhalb der Schleife...InformationsquelleAutor Srikanth Roopa