您好我正在尝试通过以下查询删除表格中的所有行
db.beginTransaction(); // db is a SQLiteDatabase object
int deleted = db.delete("user", null, null);
db.endTransaction();
我在表中删除了n行。但表中仍然存在行。我的删除电话有什么问题吗?
答案 0 :(得分:6)
在调用setTransactionSuccessful
之前,您需要调用endTransaction
提交对数据库所做的所有更改:
db.beginTransaction();
int deleted = db.delete("user", null, null);
db.setTransactionSuccessful();
db.endTransaction();
来源(Android开发人员参考):
如果任何事务结束而没有标记为干净(通过调用setTransactionSuccessful),则将回滚更改。否则他们将被承诺。
答案 1 :(得分:0)
试试这个
public int delete(String tableName) {
SQLiteDatabase db = this.getWritableDatabase();
int x = db.delete(tableName, null, null);
db.close();
return x;
}
答案 2 :(得分:0)
试一试:
db.execSQL("DROP TABLE IF EXISTS table_name");
其中db是对SqliteDatabase对象的引用。
答案 3 :(得分:0)
安装应用程序时,会在/ data文件夹中重新创建数据库文件。即使删除文件后,由于重新创建数据库,也可能会出现问题。
检查是否是这种情况。
答案 4 :(得分:0)
String query="delete from "+tablename;
SQLiteDatabase db=getWritableDatabase();
db.execSQL(query);
Log.d("msg","deleted");