löschen Sie eine Zeile aus der Datenbank
bin ich habe Probleme löschen, nur eine Zeile. Ich kann einfügen und löschen Sie die ganze Tabelle.Ich bin nicht in der Lage zu verstehen das ganze-ID Sache, um zu löschen, nur eine Zeile, ich war auf der Suche auf einige Beispiele, die ich nicht bekommen konnte es. Seine mich verrückt, Jede Hilfe wäre wirklich zu schätzen.
Hier ist die sqlite-Klasse;
public class datahelper {
private static final String DATABASE_NAME = "table.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "table1";
private Context context;
private SQLiteDatabase db;
private SQLiteStatement insertStmt;
private static final String INSERT =
"insert into " + TABLE_NAME + "(name) values (?)";
public datahelper(Context context) {
this.context = context;
OpenHelper openHelper = new OpenHelper(this.context);
this.db = openHelper.getWritableDatabase();
this.insertStmt = this.db.compileStatement(INSERT);
}
public long insert(String name) {
this.insertStmt.bindString(1, name);
return this.insertStmt.executeInsert();
}
public long insert2(String name) {
this.insertStmt2.bindString(1, name);
return this.insertStmt2.executeInsert();
}
public void deleteAll() {
this.db.delete(TABLE_NAME, null, null);
}
private static class OpenHelper extends SQLiteOpenHelper {
OpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME +
" (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)");
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausführen der Abfrage
EDIT: Basierend auf Ihrem feedback, es sieht aus wie Sie mit diese API, bietet diese delete-Methode. Meine Vermutung ist, dass Sie dies zu tun wäre:
(Original-Antwort...)
Verwenden Sie eine DELETE-Anweisung mit einer WHERE-Klausel löscht nur die Zeile mit der id, die Sie entfernen möchten:
Natürlich, müssen Sie wissen, die id, um dies zu tun. SQLite bietet eine Funktion — sqlite3_last_insert_rowid() — Sie können rufen Sie unmittelbar nach dem EINFÜGEN. Wenn Ihre API nicht bieten diese Funktion direkt, können Sie es indirekt über den Gegenwert SQL-Funktion:
Alernatively wenn Sie löschen möchten Sie einen bestimmten Namen (vorausgesetzt, es ist eindeutig):