即使更改了数据库版本并卸载了Android App,SQLiteOpenHelper也不会更新数据库

阿卡什

我被困在我的SQLiteOpenHelper类中。
我创建了一个数据库,所有来自数据库的数据都在应用程序上。
但是后来我在其中一个表中添加了一列,现在它no such column在该表中显示了。
我已经更新了数据库版本,还卸载了应用程序,并在更新数据库版本后再次安装了该应用程序,但是它仍然显示相同的问题:no such column存在。

如果我评论Column:type,那么它说 no such column named desc

我在一个新文件中重新创建了整个数据库结构,但仍然遇到相同的问题。

伙计们,帮帮我!

public static final String TABLE_RESTAURANTS = "restaurants";
public static final String COLUMN_LID = "id";
public static final String COLUMN_LNAME = "name";
public static final String COLUMN_LDESC = "desc";
public static final String COLUMN_LTYPE = "type";

在onCreate中

String CREATE_TABLE_RESTAURANTS = "CREATE TABLE " + TABLE_RESTAURANTS + "("
            + COLUMN_LID + " INTEGER PRIMARY KEY," + COLUMN_LNAME + "TEXT,"
            + COLUMN_LDESC + "TEXT," + COLUMN_LTYPE + "TEXT" + ")";
db.execSQL(CREATE_TABLE_RESTAURANTS);

在onUpgrade中

db.execSQL("DROP TABLE IF EXISTS"+ TABLE_RESTAURANTS);
onCreate(db);

插入方式

public void insertRestaurantItsms(AppetiserData cartData)
{
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COLUMN_LNAME, cartData.getName());
    contentValues.put(COLUMN_LDESC, cartData.getDescription());
    contentValues.put(COLUMN_LTYPE, cartData.getCategory());

    // Inserting Row
    db.insert(TABLE_RESTAURANTS, null, contentValues);

    db.close(); // Closing database connection
}

提取方法

 public List<AppetiserData> getAllDatarl(){
    List<AppetiserData> dataList = new ArrayList<>();

    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_RESTAURANTS;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    cursor.moveToFirst();

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            AppetiserData data = new AppetiserData();

            data.setName(cursor.getString(1));
            data.setDescription(cursor.getString(2));

            // Adding data to list
            dataList.add(data);
        } while (cursor.moveToNext());
    }

    return dataList;
}
杰万南(Jeevanandhan)

当然,您错过了空格,也错过了在查询的末尾添加分号。下面,我将这些更改添加到您的查询中并发布。

创建表查询:

String CREATE_TABLE_RESTAURANTS = "CREATE TABLE IF NOT EXISTS " + TABLE_RESTAURANTS + " ( "
            + COLUMN_LID + " INTEGER PRIMARY KEY, " + COLUMN_LNAME + " TEXT, "
            + COLUMN_LDESC + " TEXT, " + COLUMN_LTYPE + " TEXT " + ");";

删除表:

db.execSQL("DROP TABLE IF EXISTS "+ TABLE_RESTAURANTS);

希望这会有所帮助:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果从Android 6.0手动更改了存储权限,是否将删除数据库(SQLiteOpenHelper)?

来自分类Dev

更改Live App数据库而不会丢失数据

来自分类Dev

更改Live App数据库而不会丢失数据

来自分类Dev

MySQL插入不会更新数据库

来自分类Dev

EntityFramework不会更新数据库

来自分类Dev

Aspx不会从Repeater更新数据库

来自分类Dev

SQLiteOpenHelper多个内存数据库

来自分类Dev

即使增加数据库版本,SQLite数据库也无法在更新Play Store中的App时更新

来自分类Dev

数据库更改版本控制

来自分类Dev

实体框架更改了我的默认数据库名称

来自分类Dev

Wordpress 数据库意外更改了 URL

来自分类Dev

数据表不会更新我的数据库

来自分类Dev

PDO不会更新数据库中的数据,为什么?

来自分类Dev

数据不会在数据库中更新

来自分类Dev

MYSQL和PHP数据库更新不会更新数据库

来自分类Dev

PHP SQL中的更新不会更新数据库

来自分类Dev

PHP SQL中的更新不会更新数据库

来自分类Dev

更新外部JSON时Muzei数据库不会更新

来自分类Dev

在Lua中更新数据库版本

来自分类Dev

如何更新Derby数据库的版本

来自分类Dev

(ReactJS)即使数据库更新,页面上的项目列表也不会更新

来自分类Dev

从数据库更新模型不会从数据库添加新表

来自分类Dev

数据库版本SQLite Android

来自分类Dev

Android:控制数据库版本

来自分类Dev

更新ObjectDataSource中的数据库更改

来自分类Dev

X可编辑,不会更新数据库中的值

来自分类Dev

EF迁移不会自动更新数据库

来自分类Dev

如果权限全部未选中不会更新数据库

来自分类Dev

从数据库中选择的文本不会更新