android, comment execuer un fichier sql dans sqlitedatabase
j'ai "food_db.sql" fichier stocké dans /res/raw dossier,
il a des tonnes de "insérer".
ma question est comment je executez le fichier et obtenir les données dans sqlite databse dans mon application android?
voici le code de base de données de la mine. tout sugguestions?
private static class DbHelper extends SQLiteOpenHelper{
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_NAME + " TEXT NOT NULL, " +
KEY_HOTNESS + " TEXT NOT NULL);");
// how do i exec the sql file and get the data into this DB table?
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS" + DATABASE_TABLE);
db.execSQL("DROP TABLE IF EXISTS" + RECORD_TABLE);
onCreate(db);
}
}
source d'informationauteur sefirosu
Vous devez vous connecter pour publier un commentaire.
J'ai écrit ce un spécialement pour vous <3
J'ai utilisé le même nom de fichier que vous "/raw/food_db.sql" mais que conduire à des Erreurs au lieu de cela, j'ai dû l'appeler "/raw/food_db". Je suppose que c'est parce que vous n'utilisez pas des noms de fichier dans votre code, mais ResourceIds qui sont écrits comme "R. raw.food_db" et le point est la confusion du système.
Il existe une méthode pour l'intérieur de votre DbSource... en supposant que quelque part il y a un code comme ceci:
Vous mettre cette méthode en y:
L'appeler comme ceci (j'ai essayé à partir d'une Activité, de sorte que les Toasts peuvent générer des messages). Regardez de près, les erreurs sont "Grillées".
Profitez-en!
Oh.. btw: Ce code est destiné à un fichier dans lequel chaque insert-État a sa propre ligne.
Un important légende est, SQLiteDatabase.execSQL(String sql) seulement exécuter une seule instruction SQL, plusieurs instructions séparées par des points-virgules ne sont pas pris en charge.
J'ai essayé un moment difficile à trouver pourquoi mon database_init.sql ne fonctionne pas comme prévu.
Insérer la ligne dans une chaîne: