Khi bạn tạo một cơ sở dữ liệu có thể bạn sẽ sử dụng một nếu những contructors:
public TimePointsSQLiteHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, dbName, factory, dbVersion);
}
private TimePointsSQLiteHelper(Context context) {
super(context, dbName, null, dbVersion);
}
Như bạn thấy, có một biến dbVersion
, đây là một trong những nơi bạn cho biết phiên bản của cơ sở dữ liệu để tránh vấn đề bạn đang gặp phải. Theo đề xuất, hãy sử dụng biến static int cuối cùng cho phiên bản/số cơ sở dữ liệu cũ của bạn để bạn có thể thay đổi dễ dàng. ví dụ .:
public final static int dbVersion = 1;
Sau đó, bạn nên overrite onUpgrade(...)
và/hoặc onDowngrade(...)
để áp dụng những thay đổi để ứng dụng và dữ liệu hiện tại của bạn.
Cách đơn giản nhất và nhanh nhất để làm điều đó là một @SANTHOSH đề cập, chỉ cần thả tất cả các bảng và tạo cho họ một lần nữa:
db.execSQL("DROP TABLE IF EXISTS your_table_name");
onCreate(db);
xét rằng với giải pháp này bạn sẽ mất dữ liệu hiện tại của bạn lưu trong cơ sở dữ liệu của bạn. Bạn nên thêm nhiều logic hơn vào onUpgrade
và onDowngrade
để di chuyển dữ liệu từ một phiên bản của cơ sở dữ liệu sang cơ sở dữ liệu khác nếu bạn muốn giữ nó.
tôi nghĩ khi bạn tạo hoặc thay đổi tên cột ant bị lỗi, vì vậy hãy gỡ cài đặt ứng dụng và cài đặt ứng dụng mới –
Tôi không muốn xóa dữ liệu trước đó của mình. – Govind