使用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.
答案 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中使用的缓冲区在每次插入后都没有被清除。删除确实有效,但插入中使用的缓冲区在删除功能之后立即运行。基本上我在找错了地方。