Android:SQLite行未插入表中,即使插入中没有错误

时间:2017-08-17 20:37:53

标签: android sqlite android-sqlite sql-insert

我在下面有一个问题。执行插入指令没有任何错误,但我无法弄清楚为什么记录没有在表中写入,而这些记录始终是空的。

用于写行的方法:

public void addFBbitmap(String ID_FB, byte[] image) throws SQLiteException{
        qDb.beginTransaction();
        try{
            String sql   =   "INSERT INTO FB_ATTRS (ID_FB, IM_FB) VALUES(?,?)";
            SQLiteStatement insertStmt = qDb.compileStatement(sql);
            insertStmt.clearBindings();
            insertStmt.bindString(1, ID_FB);
            insertStmt.bindBlob(2, image);
            insertStmt.executeInsert();
            qDb.setTransactionSuccessful();
            qDb.endTransaction();
            Log.d(MainActivity.TAG, " Row inserted");
        }catch(Exception e){
            Log.d(MainActivity.TAG, "Error occured");
            e.printStackTrace();
        }
}

qDB(SQLiteDatabase)创建如下:

    private SQLiteDatabase qDb;
    qDb = SQLiteDatabase.openDatabase((new StringBuilder(String.valueOf(dbPath))).append("myAppDB.db").toString(), null, 16);

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

在每次App运行时删除数据库时出现问题的根本原因,这在数据更改时是错误的。我通过在升级时删除数据库解决了这个问题:

   public void onUpgrade(SQLiteDatabase sqlitedatabase, int oldVersion, int newVersion)
{qCtx.deleteDatabase(DB_NAME_BDD));}