删除Table中的所有行都不起作用

时间:2014-06-23 12:12:21

标签: android android-sqlite

使用Xamarin开发Android版 我的问题是,当我发出"从TAGS删除"在SQLITE中,表仍然报告所有记录都存在。

So I am thinking there is some little detail that I am missing with how SQLite likes a table created or how to issue a delete command.

I have tried a couple of methods to this

1) db.delete("TAGS),null,null);
2) db.ExecSQL("Delete from TAGS");
3) sqlitecommand.ExecuteNonQuery();

I am NOT getting a locked table in DEBUG.

3 个答案:

答案 0 :(得分:0)

我最好的猜测是你没有设置交易成功。试试这样:

 db.beginTransaction();
 db.delete("TAGS",null,null);
 db.setTransactionSuccessful();
 db.endTransaction();

答案 1 :(得分:0)

SQLite没有“自动提交”的概念。 如果不调用“db.beginTransaction”,则每次插入/更新/删除 语句包含在自己的事务中。这表现得像“自动提交”。 如果您确实调用“开始交易”,则启动您的交易 必须完成“提交”或“回滚”。

我的猜测是你没有得到正确的数据库连接。

在扩展SQLiteOpenHelper的类中,您有两种获取数据库连接的方法:

SQLiteDatabase db = this.getWritableDatabase();
SQLiteDatabase db = this.getReadableDatabase();

确保使用可写的数据来更改数据。

答案 2 :(得分:0)

答案给出了所有工作。最终的问题是我在套接字IO中使用的缓冲区在每次插入后都没有被清除。删除确实有效,但插入中使用的缓冲区在删除功能之后立即运行。基本上我在找错了地方。