我在Android中的sqlite中插入数据时遇到了一些问题。我写了一个用ContentValues
来做的方法,但它没有正常工作。这是方法:
DatabaseHelper.class
public boolean executeQuery(String tableName,String keys,Object value){
return execQuery(tableName,keys,value);
}
private static boolean execQuery(String tableName,String key,Object value){
sqliteDb = instance.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(key, value.toString());
sqliteDb.insert(tableName, null, values);
return true;
}
我正在使用它:
dbHelper.executeQuery("users", "seed", seed); // string
dbHelper.executeQuery("users", "id", id); // int
dbHelper.executeQuery("users", "name", name); // string
dbHelper.executeQuery("users", "lang", lang); // string
问题是我这个方法在数据库中将所有值作为单行插入,但我希望所有数据都是一行的一部分。
我需要做些什么才能让事情正常运作? 我对sqlite不太满意,所以如果我的问题有点傻,请原谅我......
提前致谢!
答案 0 :(得分:4)
private static boolean execQuery(String tableName,String seed,String id,String name, String lang){
sqliteDb = instance.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("seed", seed);
values.put("id", id);
values.put("name", name);
values.put("lang", lang);
sqliteDb.insert(tableName, null, values);
return true;
}
dbHelper.executeQuery("users",seed,id, name,lang); // string
<强> EDITED 强>
private void execQuery(String tableName,ContentValues val)
{
sqliteDb = instance.getWritableDatabase();
sqliteDb.insert(tableName, null, val);
return true;
}
拨打强>
ContentValues values = new ContentValues();
values.put("seed", seed);
values.put("id", id);
values.put("name", name);
values.put("lang", lang);
dbHelper.executeQuery("users",values); // string
答案 1 :(得分:2)
您应该使用相同的ContentValues
对象添加所有需要的列。像这样:
Content values= new ContentValues();
values.add("seed",seed);
values.add("id",id);
values.add("name",name);
values.add("lang",lang);
sqliteDb.insert(tableName,null,values);
答案 2 :(得分:1)
你必须传递字符串键数组和对象数组
dbHelper.executeQuery("users", /*Array of seed,id,name,lang*/, /*Object Array of their value*/);
and use
values.put(key[i], value[i].toString()); for all i=0 to n