Jusqu'à présent, nous avons développé des applications dans Android qui créent une base de données sur l'exécution. Nous aimons savoir comment pouvons-nous accéder à un fichier de base de données/sqlite pré-construit ou existant dans notre application Android? Veuillez fournir des détailsComment accéder à une base de données sqlite existante dans Android?
Répondre
Consultez la documentation de android.database.sqlite.SQLiteDatabase.
En particulier, il existe une commande openDatabase() qui accède à une base de données en fonction d'un chemin de fichier.
SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, 0);
Il suffit de spécifier le chemin de votre base de données comme la variable path
, et cela devrait fonctionner.
Supposons que j'ai mon fichier db dans mon dossier assets puis quel chemin je vais fournir à la variable path? –
Voir cette autre question, liée à: http://stackoverflow.com/questions/513084/how-to-ship-an-android-application-with-a-database En bref, vous ne pouvez pas le faire directement. Vous devez copier les données de votre fichier APK dans un nouveau fichier dans/data, vous pouvez alors l'ouvrir directement. Ce blog a plus d'informations: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ –
Copiez d'abord votre SDCARD et indiquez son chemin dans la variable "DBNAME" dans l'exemple suivant. ce sera quelque chose comme "/sdcard/persons.db" si vous le tirez directement sur la carte SD.
Pourriez-vous développer? Ce n'est pas tout à fait clair pour moi comment cela résout le problème. Le lien dans la première version de votre réponse est également cassé - pourriez-vous le réparer? – JonasCz
J'ai suivi la même route et a trouvé deux problèmes:
- inclure le champ _id sur une table que vous créez et assurez-vous qu'il est une partie des colonnes de revenir lorsque vous interrogez une table.
Vous pouvez rencontrer une erreur comme Impossible d'ouvrir la base de données. fermeture it.. C'est parce que nous copions la base de données à partir d'un fichier existant au lieu de créer des tables au-dessus d'une base de données créée par l'API android sqlite et la table android_metadata peut ne pas exister. Pour sa création il suffit d'exécuter la requête suivante sur votre db:
CREATE TABLE android_metadata (locale TEXT);
Et ajouter les paramètres régionaux correspondant, par exemple
en_US
Puis-je exécuter ce sql sur la base de données SQLite existante ou dois-je l'exécuter sur la base de données créée en copiant les données de la base de données existante dans/assets /? – marienke
Il devrait être exécuté sur la base de données existante dans le dossier "assets" ou une fois copié dans la base de données de l'application, mais je suppose qu'il est plus facile d'avoir la table dans la base de données avant de la copier – gantzer89
Utilisez-la pour la base de données accéder à l'application:
Context context = getApplicationContext();
context.getDatabasePath(DataBaseHelper.database_Name);
- 1. Comment accéder à une base de données SQLite dans Clojure?
- 2. En C#, comment vider une base de données SQLite existante?
- 3. Base de données Android-SQLite
- 4. Base de données SQL existante aide android
- 5. Base de données Android SQLite
- 6. Accéder au fichier .sqlite dans Android 2.1
- 7. Créer une base de données SQLite dans android
- 8. Accéder à la base de données SQLite avec PHP
- 9. comment ajouter une ligne dans une base de données existante
- 10. Utiliser une base de données SQLite personnalisée pour Android
- 11. données binaires d'écriture dans une base de données SQLite ContentResolver
- 12. Encore une autre question de base de données Android SQLite
- 13. Comment importer une base de données SQLite dans Eclipse IDE
- 14. Saving ArrayList dans la base de données SQLite dans Android
- 15. Importer la base de données SQLite dans l'émulateur Android
- 16. Android Empêcher l'accès à la base de données SQLite
- 17. Comment accéder à la base de données sqlite à partir du serveur dans mon application
- 18. Comment empaqueter mon application android avec une base de données
- 19. Django avec une base de données existante
- 20. bases de données Android SQLite
- 21. stocker et récupérer Vector dans Android base de données sqlite
- 22. Base de données SQLite dans android et java
- 23. Comment faire AUTO_INCREMENT sur la base de données Android SQLite?
- 24. grande base de données sqlite dans l'application android
- 25. Créer une base de données dans android
- 26. Adaptation d'une base de données existante à une application django
- 27. Android insérer dans la base de données sqlite
- 28. Base de données Sqlite Android: il ne pouvait pas reconnaître la nouvelle colonne ou la nouvelle table que j'avais ajoutée dans une base de données existante
- 29. Accéder à une instance d'application WPF existante?
- 30. Comment accéder à quelque chose à partir d'une base de données SQLite sur un iPhone?
@Yaqub Ahmad Merci pour le montage pour le rendre plus clair. –
Vous voudrez essayer [android sqlite asset helper] (https://github.com/jgilfelt/android-sqlite-asset-helper). Cela en fait un morceau de gâteau. – craned