SQLite不会删除行

时间:2015-07-27 11:50:26

标签: android sqlite

我的数据库中有一个表,就是这样创建的:

private static String crea_Fichas="CREATE TABLE fichas ("+
        "provincia VARCHAR (40), "+
        "municipio VARCHAR (40), "+
        "distrito VARCHAR (40), "+
        "codficha INTEGER, "+
        "codagente INTEGER, "+
        "domitri VARCHAR(80), "+
        "domfiscal VARCHAR(80), "+
        "CIERNC VARCHAR(13), "+
        "nombrecompleto VARCHAR (255), "+
        "telf1 VARCHAR(12), "+
        "telf2 VARCHAR(12), "+
        "fax VARCHAR(12), "+
        "razonsocial VARCHAR(255), "+
        "nombrecomercial VARCHAR(255), "+
        "email VARCHAR(50), "+
        "codexpediente INTEGER, "+
        "croquis BYTEA, "+
        "codtipoactividad INTEGER, "+
        "primary key(codficha), "+
        "foreign key (codtipoactividad) references tiposactividades(codtipoactividad), " +
        "foreign key (codexpediente) references expedientes (codexpediente), "+
        "foreign key (codagente) references agentes(codagente));";

稍后在我的计划中,我想这样做:

private void deleteExpediente(long codficha) {

    Cursor cursorBorra=db.rawQuery("DELETE FROM fichas where codficha='"+codficha+"'", null);
    dbHelper.copiarDb();

}

但是,这样,没有一行受到影响。我已经检查过codficha是否存在,数据库是否为空等等。没有抛出异常,只是...没有删除行。 copiarDb()是一种将我的数据库复制到我的设备中的另一个位置的方法(没有root,所以我看不到数据库)并且在那里我检查该行还没有被删除。

知道为什么我不能删除那一行?谢谢。

1 个答案:

答案 0 :(得分:1)

ifRoom

rawQuery返回结果集的Cursor,它只是对查询结果的引用。你应该只是使用直接的delete()调用。看一下文档:

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

或SQLiteStatement:

http://developer.android.com/reference/android/database/sqlite/SQLiteStatement.html