2011-06-21 27 views
6

¿Cómo puedo verificar rápidamente si existe una base de datos en Android?Android - ¿Existe una base de datos SQLite?

(no es una tabla - la base de datos)

+0

Consulte [este documento] [1] .. Puede ser útil para usted. [1]: http: //www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ – Nikhil

+0

Este es un problema muy común. Por favor, consulte el siguiente enlace. Creo que esto te ayudará. http://www.itsalif.info/content/check-if-database-exist-android-sqlite3openv2-failed –

Respuesta

5

Abra su base de datos y coger el SQLitException que será lanzado en el caso si la base de datos no existe. Tenga en cuenta que no debe llamar al método openOrCreateDatabase(). Mire esta publicación para más detalles; Query if Android database exists!

2

Mi manera de comprobar si su base de datos existe es abrir un identificador de archivo y ver si el archivo existe. desde mi experiencia usando la función "openOrCreateDatabase()" no lanzará un error si el db no existe. eche un vistazo al nombre "Abrir O Crear base de datos". lo que significa que si no hay db para abrir, solo creará uno nuevo, por lo tanto, independientemente de si hubo alguno antes de que haya uno ahora. Creo que la única vez que obtendrás un error es si no puede hacer ninguno de los dos. que por lo que dijo el tipo no creo que sea lo que están tratando de probar, creo que quería que su programa supiera si el db ya estaba allí antes, y no crear automáticamente uno en blanco si no hubiera . Entonces, como todos los archivos db se almacenan como archivos, el primer parámetro en ese comando de base de datos abierta es el nombre del archivo. Así que creo que la mejor opción es verificar si el archivo db existe así:

File dbtest = new File("/data/data/yourpackagename/databases/dbfilename"); 

//If you have Context, you could get the Database file using the following syntax 
//File dbtest = getApplicationContext().getDatabasePath("dbfilename.db"); 


if(dbtest.exists()) 
{ 
    // what to do if it does exist  
} 
else 
{ 
    // what to do if it doesn't exist 
} 
+0

debe ser: if (dbtest.exist()) ... su lógica no es correcta –

+0

buena captura, yo arregló eso. –

Cuestiones relacionadas