更新Android Sqlite数据库中的byte []

时间:2015-12-24 18:59:58

标签: android sqlite

我已成功将blob文件添加到我的数据库中。但是当我尝试更新它时会出错。我在这里尝试了两种方法是我的代码。我搜索但是在任何地方我发现在数据库中添加不更新字节[]。

1-首先,我试图保存简单的专业字节[]。但它说它没有识别byte []的价值。

2-然后我尝试了Arrays.toString(pro)但没有这样的列。

      public void profile(String status,byte[] pro, SQLiteDatabase db){
    ContentValues sv = new ContentValues();
    sv.put(mDatabase.Tableinfo.status, status);
    sv.put(mDatabase.Tableinfo.Pic, pro) ;
    db.update(mDatabase.Tableinfo.Table_Name, sv, mDatabase.Tableinfo.status + "=" + status + " and " + mDatabase.Tableinfo.Pic + "=" + Arrays.toString(pro), null);
   // db.insert(mDatabase.Tableinfo.Table_Name, null, sv);

   android.database.sqlite.SQLiteException: near "and": syntax error (code 1): , while compiling: UPDATE User SET status=?,Pro_pic=? WHERE status= and Pro_pic=[-119, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 120, 0, 0, 0, 1............ and to infinite .

您可能会建议这样做,但我甚至尝试了这一点,但无法在String数组中添加byte []。

  mDatabase.Tableinfo.status + "=? and " +mDatabase.Tableinfo.Pic +"=?", new String[]{status,pro(this is a byte array)}, null);

2 个答案:

答案 0 :(得分:1)

添加单引号可能有效

db.update(mDatabase.Tableinfo.Table_Name, sv, mDatabase.Tableinfo.status  "="    
    + status + " and " + mDatabase.Tableinfo.Pic + "= '"+Arrays.toString(pro)+"'", null);

答案 1 :(得分:1)

注意 - 我只有一行所以这样做就解决了我的问题。别无选择。

     db.update(mDatabase.Tableinfo.Table_Name, sv,null, null);