Android sql insert查询

时间:2011-09-19 11:58:00

标签: android sqlite insert

我在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不太满意,所以如果我的问题有点傻,请原谅我......

提前致谢!

3 个答案:

答案 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