以下 sqlite 查询不会删除以零开头的 ID。
Android Sqlite表结构
String CREATE_TABLE_BUS = "CREATE TABLE " + TABLE_BUS + "("
+ KEY_TID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_BUS_NUM + " TEXT,"
+ KEY_BUS_NAME + " TEXT,"
+ KEY_FROM + " TEXT,"
+ KEY_TO + " TEXT,"
+ KEY_TYPE + " TEXT"
+ ")";
db.execSQL(CREATE_TABLE_BUS);
出于某种目的,我将 BUS_NUM 保留为文本而不是整数。
这是我用来删除一行的函数..
public void Delete_Bus(String bus_num) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_BUS, KEY_BUS_NUM+"="+bus_num , null);
Log.e("deleting bus num", bus_num);
db.close(); // Closing database connection
}
当代码不是从零开始时,这段代码工作得很好..
它适用于 76555 而不是 09877。我的代码有什么问题
最佳答案
这段代码生成的查询结束是这样的:
DELETE FROM BusTable WHERE BusNum = 012345
数据库会将其解释为数字,而不是字符串。
在 SQL 中,字符串必须用引号引起来:
DELETE FROM BusTable WHERE BusNum = '012345'
但是,您可以避免使用参数来格式化字符串:
db.delete(TABLE_BUS, KEY_BUS_NUM + " = ?", new String[] { bus_num });
关于android sqlite 删除查询不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25328565/