2010-12-10 37 views

Respuesta

1
ContentValues values = new ContentValues(); 
for(int i = 0; i<=5; i++) { 
    values.put(COLUMN_NAME, i); 
    values.put(COLUMN_NAME, 0); 
    db.insert(TABLE_NAME, null, values); 
} 
+10

es esto eficiente? ¿no puedes escribir todas las filas con una sola solicitud? –

5

Lo que está buscando es bulkInsert. Le permitirá suministrar una matriz de ContentValues para insertar. Consulte la documentación de Android para obtener más información:

http://developer.android.com/reference/android/content/ContentResolver.html#bulkInsert%28android.net.Uri,%20android.content.ContentValues%5B%5D%29

+0

Es importante tener en cuenta que la documentación dice: "Esta función no garantiza la atomicidad de las inserciones". Pero no puedo encontrar una mejor manera de insertar varias filas. –

5

puede utilizar inserthelper, marque esta blog

+2

'InsertHelper' está en desuso ahora. –

0

muy antiguo puesto sin embargo. Cuando intenta hacer varias llamadas a la base de datos, como actualizar o insertar, envuelva las transacciones. Esto hará una gran diferencia en la velocidad.

db.beginTransaction(); 
try 
{ 
    while(...) 
    { 
     // .. do your inserts, updates and deletes here 
    } 

    // If successful commit those changes 
    db.setTransactionSuccessful(); 
} 
finally 
{ 
    db.endTransaction(); 
} 
Cuestiones relacionadas