Android SQL запрос вставки - PullRequest
       1

Android SQL запрос вставки

0 голосов
/ 19 сентября 2011

У меня небольшая проблема со вставкой данных в sqlite в Android. Я написал метод, который делает это с 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 ]

4 голосов
/ 19 сентября 2011
    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 
2 голосов
/ 19 сентября 2011

Вы должны использовать тот же объект 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);
1 голос
/ 19 сентября 2011

вам нужно передать массив ключей строк и массив объектов

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...