Android SQLite - Cursor & ContentValues

Content.Values ​​нысанын SQLite ішінен алудың қандай да бір жолы бар ма? Бұл өте пайдалы, біз ContentValues-ды ДБ-ға кірістіре аламыз және ол жерден CV-ні алудың пайдалы болуы керек.

24

5 жауаптар

Сіз әдісті cursorRowToContentValues ​​( Курсордың курсоры, ContentValues ​​мәндері) DatabaseUtils сыныбының.

мысал

Cursor c = db.query(tableName, 
            tableColumn, 
            where, 
            whereArgs,
            groupBy,
            having,
            orderBy);

ArrayList retVal = new ArrayList();
ContentValues map;  
if(c.moveToFirst()) {       
   do {
        map = new ContentValues();
        DatabaseUtils.cursorRowToContentValues(c, map);                 
        retVal.add(map);
    } while(c.moveToNext());
}

c.close();  
57
қосылды

Мен өзімнің < параллельді логикалық қателерді болдырмау үшін > DatabaseUtils.cursorRowToContentValues ​​ әдісін қолданыңыз </html> a>. ContentValues ​​ ішіндегі әдістерді шақырғанда оларды талдаудың орнына, SQL дерекқорындағы түрлерге негізделген инсценттер мен сүзгілерді талдау үшін Cursor сұрайды.

public static ContentValues cursorRowToContentValues(Cursor cursor) {
    ContentValues values = new ContentValues();
    String[] columns = cursor.getColumnNames();
    int length = columns.length;
    for (int i = 0; i < length; i++) {
        switch (cursor.getType(i)) {
            case Cursor.FIELD_TYPE_NULL:
                values.putNull(columns[i]);
                break;
            case Cursor.FIELD_TYPE_INTEGER:
                values.put(columns[i], cursor.getLong(i));
                break;
            case Cursor.FIELD_TYPE_FLOAT:
                values.put(columns[i], cursor.getDouble(i));
                break;
            case Cursor.FIELD_TYPE_STRING:
                values.put(columns[i], cursor.getString(i));
                break;
            case Cursor.FIELD_TYPE_BLOB:
                values.put(columns[i], cursor.getBlob(i));
                break;
        }
    }
    return values;
}
3
қосылды

thenewboston сайтына барыңыз, онда SQLite (және ContentValues ​​пайдалану) үшін 111-124-тен : D

Anyway, the one that he taught about ContentValues is in the 117th

Сәттілік: D

PS: Бірақ ол сондай-ақ курсорды пайдаланады :)

2
қосылды

Жоқ. Сіз мұны курсормен және ескі жақсы сұраумен істеуіңіз керек. Сұрау сұрау нысандарын қайтара алатын болса, мен бақытты болар едім.

1
қосылды

Жоқ, Cursor қолданыңыз.

0
қосылды