#android-sqlite
#android-sqlite
Вопрос:
Я пытаюсь удалить таблицу базы данных программно или вручную.
Я создал свое собственное приложение, которое находится в стадии разработки.
Мое приложение называется SWULJ CT Conductor
, но я не нахожу его в папке android / data / data с любым форматом имени com.xxx.xxx
код:
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "BusDetails.db";
public static final String TABLE_NAME = "bus_details_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "NUMBER";
public static final String COL_3 = "ROUTE";
public static final String COL_4 = "CITY";
public static final String COL_5 = "STATUS";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String myPath = TABLE_NAME DATABASE_NAME;
SQLiteDatabase.deleteDatabase(new File(myPath));
db.execSQL("create table " TABLE_NAME " (ID INTEGER PRIMARY KEY AUTOINCREMENT,NUMBER TEXT,ROUTE TEXT,CITY TEXT,STATUS INTEGER)");
}
Это частичный код для класса databasehelper
Он вызывается из действия, подобного этому:
public class GenerateQrCodeActivity extends AppCompatActivity {
ImageButton imgButtonGenerateBulk;
ImageButton imgButtonGenerateSingle;
DatabaseHelper myDb;
EditText edit;
boolean flag = false;
String data_bus_number=null;
int ID_bus_number = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_generate_qr_code);
myDb = new DatabaseHelper(this);
imgButtonGenerateBulk =(ImageButton)findViewById(R.id.imageButtonGenerateBulk);
imgButtonGenerateSingle =(ImageButton)findViewById(R.id.imageButtonGenerateSingle);
edit = (EditText) findViewById(R.id.bus_number);
.....
.....
Я разместил строки
String myPath = TABLE_NAME DATABASE_NAME;
SQLiteDatabase.deleteDatabase(new File(myPath));
Но появляются старые данные из базы данных. Он не удаляется. Почему? как это исправить?
Ответ №1:
сделано с помощью функции->
public void deleteDatabase() {
// Are you sure? (y/n)
final SQLiteDatabase db = this.getWritableDatabase();
final File dbFile = new File(db.getPath());
db.close();
Toast.makeText(cntxt, "db deleted", Toast.LENGTH_SHORT).show();
edit.setText("db deleted");
if (dbFile.exists()) {
SQLiteDatabase.deleteDatabase(dbFile);
}
//mOpenHelper = new DatabaseHelper(getContext());
}