2015-12-24 49 views
0

我已經成功地將一個blob文件添加到我的數據庫中。但是當我嘗試更新它會給出錯誤。我嘗試了兩種方法,這是我的code.I搜索,但我到處都發現在數據庫中添加不更新字節[]。在Android Sqlite數據庫中更新一個字節[]

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 . 

你可能會認爲這一點,但我甚至試過,但不能添加一個byte []到字符串數組。

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

不要把status和pro放在where子句中。也許是_ID? –

+0

我沒有任何想法,我嘗試過,但不能正確的,我不能將一個字節[]添加到字符串[]。在這個表中只有一行,所以沒有ID,這就是爲什麼我不想插入。我想更新它。檢查我的問題。 –

+1

如果只有一行可以更新所有行。 db.update(mDatabase.Tableinfo.Table_Name,sv,null,null); –

回答

1

添加單引號可以工作

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

注 - 我只有一排所以才這樣做解決了我的問題。沒有選擇沒有其他的事情。

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