考虑以下SQLite表
以下代码片段用于在" bit"更新值职位,工作正常。
SQLiteDatabase db = myDbHelper.getReadableDatabase();
ContentValues values = new ContentValues();
values.put("value", "1");
db.update("registro_status", values, "bit=1", null);
如何设置整个" 值"列使用像
这样的数组 String[] valuearray = {"1","0","1","0","1","0","1","0","1","0","1","0","1","0","1"};
答案 0 :(得分:2)
基本上你不能。但是,您可以使用一个事务上下文来加速插入:
SQLiteDatabase db = myDbHelper.getReadableDatabase();
ContentValues values = new ContentValues();
db.beginTransaction();
try{
int bit = 1;
for (String value: valuearray) {
values.put("value", value);
db.update("registro_status", values, "bit=" +bit++, null);
}
db.setTransactionSuccessful();
} catch(Exception e) {
Log.e(“Error in transaction”, e.toString());
} finally {
db.endTransaction();
}
这通常比按记录插入记录要快得多。
或者,如果您对SQL感到满意,可以实现INSERT
语句:
String sql = "INSERT OR REPLACE INTO registro_status (bit, value) VALUES ";
int bit = 1;
for (String value: valuearray) {
sql = sql+ "("+ bit +", " +value +"),";
}
// cut last comma and add semi colon
sql = sql.substring (0, sql.length() -1) +";";
db.execSQL(sql);
p.s。 :请注意上述更新 - 我忘记了update
;)