sqlite veritabanı güncelleştirmesi sağlayan bir işlev yapıyorum. Android App'e ilk kez girdiğimde veri klasörüme kopyalanan varlıklar klasöründe bir veritabanı (demo.db gibi) var.Bir sqlite tabloyu varlıklardan veriye veya verilere kopyalayın Android
MySQLiteHelpter SQLiteOpenHelper uzanır:
benim bir uygulama için yeni sürümüne sahip Ancak, ben zaten verilerde oluşturuldu varlıklar klasöründe sqlite tablo değiştirmeniz gerekiyor/veri folder.Here benim kodudur Internet'te arama gibipublic static void loadDB(Context context, String dbName) {
String packName = context.getPackageName();
String dbPath = "data/data/" + packName + "/databases";
try {
File e = new File(dbPath);
if(!e.exists()) {
e.mkdirs();
}
File dest = new File(e, dbName);
if(dest.exists()) {
return;
}
dest.createNewFile();
InputStream in = context.getResources().getAssets().open(dbName);
int size = in.available();
byte[] buf = new byte[size];
in.read(buf);
in.close();
FileOutputStream out = new FileOutputStream(dest);
out.write(buf);
out.close();
} catch (Exception var10) {
var10.printStackTrace();
}
}
, benimkine benzer bazı soru bulduk: İşte
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
for(int i = oldVersion; i <= newVersion; i++){
switch (i){
case 8:
//delete the older table
db.execSQL("drop table if exists " + DFY_BD_DISTRICT);
//do something.
//I need to copy the table from the assets folder even I have already created the database in the previous version.
break;
}
}
}
ilk kez veri/veri klasörüne benim veritabanını kopyalamak için kullanmak benim kodudur https://stackoverflow.com/questions/12264860/android-sqlite-database-copying-table-from-assets-to-local-app-database Buna sevindim Bana biraz yardım edebilirseniz:) Daha fazla kod veya daha fazla soruna ihtiyacınız varsa, kodumu mümkün olan en kısa sürede yapıştıracağım.
Kodunuz için teşekkür ederiz ~ Ama kodunuz veritabanına veriyi bir veri kopyalamaktan ziyade veriyi veri/veri klasörüne kopyalamaktan ziyade veriyi veriye kopyalamak gibi görünüyor ~ – LinaInverce
Bu kod normalde Android 6.0+? –
Durumunuzda, @ LinaInverce ---- güncellemedeki eski db verilerini silebilir ve yeni db'yi programatik olarak varlıklardan kopyalayabilirsiniz. – beginner