关于在我的Android应用程序中删除一行有关SQLite后台数据库的问题,我遇到了一些问题。
我有6种线型。例如S1,S2,S3等我一次只能有6行,因此我的数据库中只有6行。在我的应用程序的每个按钮旁边,我有一个" X"按钮,当他们点击时说出S1旁边的X按钮我希望数据库删除带有主键的行" S1"。
我认为有一个快速的解决方案,但我试图以不同的方式操纵我的查询,并且无法得到正确的答案。
以下是我的一些代码:
DB助手:
public void deleteProgressBar4() {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_NAME, COL_2 + "=", new String[]{"S1"});
return;
}
顺便说一句,COL_2是LineType ..
X按钮代码:
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
myDb.deleteProgressBar4();
Toast.makeText(Dashboard.this, "Line S1 Cleared!", Toast.LENGTH_SHORT).show();
}
});
任何人都可以看到我在删除功能中犯的错误吗?这是我运行时遇到的错误:
android.database.sqlite.SQLiteException:near" =&#34 ;:语法错误(代码1):,编译时:DELETE FROM pharma_tracker_table WHERE LINETYPE = 在android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法) 在android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) 在android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) 在android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 在android.database.sqlite.SQLiteProgram。(SQLiteProgram.java:58) 在android.database.sqlite.SQLiteStatement。(SQLiteStatement.java:31) 在android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1499) 在com.almac.tracker.DatabaseHelper.deleteProgressBar4(DatabaseHelper.java:141) 在com.almac.tracker.Dashboard $ 6 $ 1.onClick(Dashboard.java:219) 在android.support.v7.app.AlertController $ ButtonHandler.handleMessage(AlertController.java:162) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:154) 在android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:866) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 申请已终止。
谢谢!
答案 0 :(得分:-1)
只需替换您的表名和列名
SQLiteDatabase db = this.getWritableDatabase();
long i =db.delete("tableName", "column Name = ?", new String[]{String.valueof(Id)});